OC编码优化
阿里海瑟要
这个作者很懒,什么都没留下…
展开
-
(1)Effective OC
代码写了有段时间了,想学习优化代码,于是遇到这本书(Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs),接下来都是学习笔记了~好记性不如赖笔头嘛,虽然是英文书,但是还特么能接受~ ITEM 1:熟悉objective – c的根源 栈中是定义,堆中是数据,栈中存的数据是指向转载 2014-09-05 12:49:10 · 488 阅读 · 0 评论 -
(2)Effective OC
ITEM3 :优先使用字面值而非与其对等的方法。 创建NSString,NSNumber,NSArray,NSDictionary以及他们的可变类,尽量采用字面值语法的形式去创建,这样可以减少代码冗余,看起来更简洁。 访问数组或者字典的某一个值时,采用下标的形式来获取值。 需要注意的是采用字面值去创建数组或者字典的时候不要插入nil,否则会抛出异常。 代码示例: Literal N转载 2014-09-05 12:51:01 · 413 阅读 · 0 评论 -
(5)Effective OC
ITEM9:使用类族隐藏实现部分。 类族模式可以把实现细节隐藏在一套公共接口后面。系统中的集合类就是类族。继承类族时看文档,重写一些必要方法。如果该类是类族,那么使用isKindOfClass来判断是否属于该类,不要用isMemberOfClass,因为后者返回NO,你所创建的类并不是基类的实例,而是它某一子类的实例。 代码示例: Objective-C 1转载 2014-09-05 12:58:00 · 545 阅读 · 0 评论 -
(6)Effective OC
ITEM11:理解objc_msgSend 所有的方法都转化成void objc_msgSend(id self. SEL cmd,…),第一个参数代表接受者,第二个参数代表方法名。在接收的类中搜寻方法列表找到匹配的方法实现,跳转至实现处,若找不到则执行消息转发。调用的方法会缓存到快速映射表。下次调用速度会快一些。每个类中有一张表,selector就像key 通过key查表来找实现。转载 2014-09-05 13:00:31 · 368 阅读 · 0 评论 -
(3)Effective OC
ITEM5:使用枚举类型来定义状态,选项,状态码 使用枚举来定义常量非常有用,比如用来形如错误码,选项等,这样可读性强。最好为枚举中各项赋值,而不让编译器自动赋值。这样当选项可以组合的时候可以使用按位或运算。枚举选项如果有合并的时候使用NS_OPTIONS来定义,其他情况使用NS_ENUM。用Switch时,枚举选项做条件,default 语句最好不要实现。这样当有选项未被执行,编译器会警告转载 2014-09-05 12:55:06 · 402 阅读 · 0 评论 -
(4)Effective OC
ITEM7:类内部采用直接访问实例变量的形式。 读取实例变量采用直接访问形式,设置实例变量采用属性形式设置,self.xxx= xxx;直接访问实例变量的速度要比属性形式速度快,并且对于copy类的属性不会产生副本。通过属性形式来访问的可以添加断点来排错。折中办法就是第一条规则,两者结合使用。初始化方法中给属性赋值采用直接访问形式。某个实例变量采用延时加载时,可以通过属性形式来访问。转载 2014-09-05 12:54:58 · 434 阅读 · 0 评论 -
target specifies product type 'com.apple.product-type.framework.static', but there's no such product
这次是一个关于静态库的问题,搞得真烦恼,原创 2014-10-13 11:25:32 · 1408 阅读 · 0 评论