- 博客(68)
- 收藏
- 关注
原创 NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:@interface TestStringClass ()@property (nonatomic, strong)
2015-05-15 14:54:24
651
转载 Xcode 6制作动态及静态Framework
在之前的文章关于ios中的动态库、静态库中介绍了静态库和动态库的区别及用法,在xcode6之前的版本,apple是不允许制作Framework的,以前可以使用第三方的框架iOS-Universal-Framework,自从apple在xcode6开放相关功能之后,iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用Xcode 6制作,目前网上也有很
2015-04-02 14:25:04
725
转载 剖析带有afterDealy参数的performSelector方法实现
主要从performSelector:afterDealy:的实现原理来分析为什么在主线程中调用此方法后不会阻塞主线程里业务代码的顺序执行。示例代码如下:- (void)doSomething { NSLog(@"Begin doSomething..."); for (int i = 0; i < 10; i++) { if (i == 5) {
2015-03-25 13:27:04
680
转载 iOS App性能优化
iOS App的性能关注点虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一。我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦。工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在。定位性能问题原因当然
2014-03-31 15:24:32
880
转载 11个iOS面试问题
招聘是一个团队持久发展的重要环节。王淮Harry哥在Facebook的十点经验分享中说过,只和最好的人合作(能够尽其所知,用其所长,学其所不能的;能迅速完成目标并远超期望的),Hire Slow,Fire Fast;招的人要足够优秀,要保证能力大于团队的平均水平。11个技术问题大多数iOS 开发团队都倾向于有1-2个顶尖的开发者,带领一些较为初级的开发者。Black Pixel公司的Dan
2014-03-28 23:32:18
691
转载 分析iOS Crash文件:符号化iOS Crash文件的3种方法
原文来自:这里当你的应用提交到AppStore或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢?上传crash文件你的应用应当有模块能够在应用程序crash的时候上传crash信息。要么通过用户反馈拿到crash文件,要么借助自己或第3方的crash上传模块拿到crash文件。今天要分析的场景是你拿到用户的.crash文件之后,如何符合化c
2014-03-28 23:22:08
615
转载 iPhone消息推送机制实现与探讨
http://www.cnblogs.com/zhuqil/archive/2011/06/05/2070679.html
2014-03-12 19:44:13
527
原创 CGAffineTransform2D仿射变换原理
A和B两个矩阵相乘,就要A的列数等于B的行数才有相乘的意义,相乘结果是一个矩阵C,C的行数和A的行数相等,C的列数和B的列数相等,C的每个元素值为A对应的行与B对应的列的元素乘积的和:CGAffineTransform 的结构如下:struct CGAffineTransform{ CGFloat a, b, c, d; CGFloat tx, ty;}
2014-03-04 17:15:46
1592
转载 iOS网络编程之Socket
[深入浅出Cocoa]iOS网络编程之Socket罗朝辉 (http://blog.youkuaiyun.com/kesalin)CC 许可,转载请注明出处更多 Cocoa 开发文章,敬请访问《深入浅出Cocoa》 优快云专栏:http://blog.youkuaiyun.com/column/details/cocoa.html一,iOS网络编程层次模型在前文《
2014-02-19 19:06:46
879
转载 深入浅出Cocoa之类与对象
深入浅出Cocoa之类与对象罗朝辉(http://blog.csdn.com/kesalin/)CC许可,转载请注明出处最近打算写一些ObjC中比较底层的东西,尤其是 runtime 相关的。苹果已经将 ObjC runtime 代码开源了,我们可以从:http://opensource.apple.com/source/objc4/objc4-493.9/runtime/
2014-02-19 19:05:55
665
原创 如何在QR二维码中插入图片
二维码终于火了,现在大街小巷大小商品广告上的二维码标签都随处可见,而且大都不是简单的纯二维码,而是中间有个性图标的二维码。我之前做了一个使用google开源项目zxing实现二维码、一维码编码解码的程序并开放了源码(用C#实现的条形码和二维码编码解码器),今天继续在此程序基础上,实现二维码中间加小图片。背景知识QRcode使用里德-所罗门码来进行错误修正。对于我们来说,里德-所罗门编码
2014-02-19 19:02:25
6212
转载 [iOS]如何向 appstore 查询已发布 APP 的信息?
转载来自这里如果我们需要实现版本的 app 自动更新,那么我们需要获取当前运行程序的版本信息和 appstore 里发布的最新版本信息,当前运行程序的版本信息,可以在 mainBundle 里面获取:NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersio
2014-02-19 18:55:39
804
原创 ios7中UIViewControllerBasedStatusBarAppearance作用
在作iOS7的适配时,很多文章都会提到UIViewControllerBasedStatusBarAppearance。便一直不是太明白其实际作用,使用时发现UIViewControllerBasedStatusBarAppearance的实际作用如下: 这个属性只影响如何设置status bar上字体的颜色是暗色(黑色)还是亮色(白色),对status bar的背景色无影
2014-02-14 15:00:45
3007
转载 开始使用GCD
转载自:这里什么是GCDGrand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(C
2014-02-12 17:13:55
657
转载 iOS应用崩溃日志揭秘(第二部分)
场景 4: 吃棒棒糖时闪退!用户邮件说, “当rage master吃棒棒糖时应用就闪退…” 另一用户说, “我让rage master 吃棒棒糖,没几次应用就闪退了!”崩溃日志如下:Incident Identifier: 081E58F5-95A8-404D-947B-5E104B6BC1B1CrashReporter Key: 5a56599d836c4
2014-01-16 13:55:46
1120
转载 iOS应用崩溃日志揭秘(第一部分)
作为一名应用开发者,你是否有过如下经历?为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 !如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的
2014-01-16 13:50:52
927
原创 多target来构建大量相似App
问题描述:(主要有以下两个场景)1、新开始的项目大概是这样的:做行业app,行业包括但不限于旅游、交通、餐饮、教育等。所有的行业app会出现基本相同的注册和登录以及首页逻辑和界面(只是背景图片不一样而已),基本相同的页面风格,基本相同的个人空间、基本相同的服务器交互协议等等。不同点包括:应用图标,启动画面,应用启动后的首页、大部分数据的展示方式和逻辑跳转。2、在一个已经发布app的基础上衍
2014-01-10 14:59:04
1040
原创 iOS项目中的version和build
Version在plist文件中的key是“CFBundleShortVersionString”,标识应用程序的发布版本号,和AppStore上的版本号保持一致。该版本的版本号是三个分隔的整数组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本Build在plist文件中的key是“CFBundleVers
2014-01-10 11:32:55
1960
转载 Objective-C对象模型及应用
转载来自:唐巧的技术博客-Objective-C对象模型及应用本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isa swizzling和method swizzling的支持。希望本文能加深你对Objective-C对象的理解。ISA指针Objective-C是一门面向对象的编程语言。每一个对象都是一个类的实例。在Objecti
2014-01-09 17:53:51
757
翻译 iOS开发中类簇的应用
类簇(class cluster)是一种设计模式,在Foundation Framework中被广泛使用,举个简单的例子:NSArray *arr = [NSArray arrayWithObjects:@"foo",@"bar", nil];NSLog(@"arr class:%@", [arr class]);// output: __NSArrayI显然__NSArrayI是一个私
2014-01-09 15:48:31
741
转载 KVO的内部实现
转载来自:CocoaChina概述:09年的一篇文章,比较深入地阐述了KVO的内部实现。 KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独。09年的一篇文章,比较深入地阐述了KVO的内部实现。 KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改
2014-01-09 15:41:48
723
转载 关于苹果开发者账号(三)
转载来源:Ryan's Zone这是一篇教程,这里有手把手教学什么是Provisioning Profile?从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者账号体系中所扮演的角色也是配置和验证的作用。如果你有开发者账号,可以打开你的开发者控制台,在首页可以看到如下界面。如果你没有开发者账号,那就看图片意会吧!:)现在开发者控制台相比之
2014-01-09 10:47:25
1238
转载 关于苹果开发者账号(二)
转载来源:Ryan's Zone这是一篇教程,这里有手把手教学一、关于证书苹果使用密文签名技术来验证App的合法性,不管是iOS应用还是Mac应用都需要相应的签名证书来作为测试或发布App用。这里主要谈谈iOS的证书,当然,Mac的证书也基本类似。在开发iOS应用的时候,我们需要签名证书(开发证书)来验证,并允许我们在真机上对App进行测试。另外,在发布App到App
2014-01-09 10:45:37
880
转载 关于苹果开发者账号(一)
转载来源:Ryan's Zone这不是一篇教程,这里没有手把手教学正如前言所述,如果你是找一篇如何申请苹果开发者账号的HOTO教程,那么不耽误你的宝贵时间了,马上关闭本页面。如果你是想看我扯一下关于苹果开发者账号那些事儿,那你可以放松下接着往下看,从这一篇开始接下来几篇文章,我将完整的介绍苹果开发者账号体系!账号类型成为苹果开发者就必须注册苹果开发者账号并付费,拥有了开发者
2014-01-09 10:42:58
1235
转载 JS与iOS Native Code互调实现方法
优秀的开源小项目:WebViewJavascriptBridge。 它优雅地实现了在使用UIWebView时JS与ios 的Objective-C nativecode之间的互调,支持消息发送、接收、消息处理器的注册与调用以及设置消息处理的回调。 就像项目的名称一样,它是连接UIWebView和Javascript的bridge。在加入这个项目之后,他们之间的交互处理方式变得很友好
2014-01-07 15:59:48
1031
转载 2013 CocoaChina微信精选之技术汇
为了方便更多朋友能尽快获得技术、游戏开发以及应用设计等方面的信息,我们从去年开始通过微信向大家推送信息,并且我们也收到了大家积极的反馈和建议,在此感谢大家的关注和支持。2014年,我们将一如既往地陪伴大家,做开发者最忠诚的朋友。 微信已经成为我们生活中不可或缺的工具,但过大的信息量也会让人失去关注的焦点,为此我们特意挑选出部分开发者较为关注的技术问题整理成篇(更多技术文章,可在首页“开发相
2014-01-07 15:48:10
1022
转载 iOS唯一标示符引导
在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”。unique Identifier即将退出,苹果给了我们Vendor和Advertising identifier两个选择,但应该用哪一个?文档并没有给出确切答案,具体使用哪个完全由你根据自己a
2014-01-07 15:45:43
557
翻译 id ,NSObject, id<NSObject>的区别
我们经常会混淆以下三种申明: 1. id foo1; 2. NSObject *foo2; 3. id foo3;第一种是最常用的,它简单地申明了指向对象的指针,没有给编译器任何类型信息,因此,编译器不会做类型检查。但也因为是这样,你可以发送任何信息给id类型的对象。这就是为什么+alloc返回id类型,但调用[[Foo alloc] init]不会产生编译错
2014-01-07 15:34:31
681
转载 objc’s category and class cluster(类簇)
objective-c有一个feature,可以给已有的类添加方法,而无需改变类名。传统的语言可能需要通过继承或者组合实现,但是obj-c只需要用这个feature就好,这就是category。Category:举个例子,NSString是一个常用的类,NSString是原生支持unicode,比如NSString* str = @”感谢国家”; 要获得string的length,在大
2014-01-07 13:59:28
758
转载 objc’s self and super
在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject { NSString* name;}- (void) setName:(NSString*) yourName
2014-01-07 13:44:00
625
原创 Eclipse各主要版本的区别
版本:Eclipse Standard:eclipse的标准版;Eclipse IDE for Java EE Developers:标准版基础上增加j2ee开发所需插件(wtp、wst等);Eclipse IDE for Java Developers:标准版基础上增加java开发所需插件(jdt等);Eclipse IDE for C/C++ Developers:
2014-01-03 16:45:35
2320
原创 Mac OS X 10.9下搭建java web开发环境之一 开启和配置本机的Apache服务
概要:可能大多数人没有注意到,Mac OS X 其实内置了 Apache 服务器,可以很简单的启动web服务。Apple 将 Apache “封装”起来了,通常的用户界面中没有任何直接对其进行操作设置的部分。本文简介Mac OS X 中怎样通过Apache启动web服务。启动Apache有两种方法:打开“系统设置偏好(System Preferences)” ->
2014-01-03 10:31:33
3889
转载 iOS6 Grouped类型UITableView背景色设置问题
在iOS6中,对于UITableViewStyleGrouped类型的UITableView,通过直接修改继承自UIView的backgroundColor属性的方法来设置UITableView的背景色无效。比如,在AppDelegate中设置窗口的颜色为淡黄色self.window.backgroundColor = [UIColor colorWithRed:1.00f green:0
2014-01-02 13:48:37
721
原创 CGFloat与float的区别
CGFloat只是对float或double的typedef定义,在64位机器上,CGFloat定义为double类型,在32位机器上为float.在xcode中按住Command键,点击CGFloat,可跳转至CGbase.h文件CGFloat的定义处。#if defined(__LP64__) && __LP64__# define CGFLOAT_TYPE double#
2014-01-02 13:38:49
7430
转载 UIWebView的几个小技巧
一. 在UIWebView中使用flashScrollIndicators使用UIScrollView时,我们可以使用flashScrollIndicators方法显示滚动标识然后消失,告知用户此页面可以滚动,后面还有更多内容。UIWebView内部依赖于UIScrollView,但是其没有flashScrollIndicators方法,但可以通过其他途径使用此方法,如下所示。for
2014-01-02 13:20:15
558
转载 Objective C URL编码转换
一.URL编码URL串只能包含限制性的少数字符。根据RFC2396的定义,允许在URL中出现的字符分为保留字符和非保留字符。保留字符:reserved = “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”保留字符主要用于分隔URL的各个部分。非保留字符:unreserved = alphanum | mark
2014-01-02 13:17:12
2047
转载 判断App是否首次启动
现在的APP中流行在程序第一次启动时显示一些新手引导页面,下面的代码可用于判断此APP是否第一次启动,或升级后的第一次启动。#define LAST_RUN_VERSION_KEY @"last_run_version_of_application"- (BOOL) isFirstLoad{ NSString *currentVersion = [[[NSBun
2014-01-02 13:00:34
739
转载 iPhone键盘通知与键盘定制
一.键盘通知当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘。成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发。当文本视图退出first responder时,键盘会消失。文本View退出first
2014-01-02 12:57:32
634
原创 iOS App Launch Option
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。若用户直接启动,lauch
2014-01-02 12:00:41
930
转载 基于XMPP的IOS客户端开发
[iPhone高级] 基于XMPP的IOS聊天客户端程序(XMPP服务器架构) http://blog.youkuaiyun.com/kangx6/article/details/7739828[iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端一) http://blog.youkuaiyun.com/kangx6/article/de
2013-12-10 20:51:21
914
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人