ZJ

1.枚举定义:
typedef NS_ENUM(NSInteger,JFType) {
JFOneType = 1,
JFTwoType,
}

2.适配64bit,将类型转换的影响降到最低:
int - > NSInteger
unsigned - > NSUInteger 
float - > CGFloat 
动画时间 - > NSTimeInterval

这些都是SDK中定义的类型,而我们大部分时间都在和SDK的Api打交道,使用它们能将类型转换的影响降到最低。

3.Objective-C中有Designated和Secondary初始化方法的概念,Designated方法是提供所有的参数,而Secondary方法是提供部分参数,其他参数以默认的形式提供

4.使用weak的情况,weak是ARC中才会出现的,和strong修饰符相对应,都是用于修饰对象的,一般在可能出现循环应用的地方使用weak,比如block,代理,还比如,自身已经对它进行了一次强引用,后面又需要引用时,比如IBOutlet中。

5.Copy一般用用于修饰NSArray,NSDictionary,NSString等含有可变子类型的对象,因为如果使用strong修饰,只是会让这个对象的引用计数器+1,当我们不小心将这个指针指向一个变数子类时,当这个子类发生变化时,可能会造成修改对象的值。当使用Copy修饰可变对象时,会产生一个不可变对象,当调用可变对象的方法时,编译不会报错,但运行时就会找不到方法。_name = [name copy];

6.@property本质就是ivar+getter+setter,分别是实例变量+setter方法+getter方法,系统会自动为实例变量生产getter和setter方法。
property在runtime中的本质是objc_property_t,属于结构体,包含attribute和name两个属性,而attribute的本质是objc_property_attribute_t,用于定义property中的属性如类型,原子属性,内存语义,实例变量,T类型,C代表copy,N代表nonatomic等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每天都有人愿意对你说早安,晚安 是一件特别幸福的事[愉快] 睁开眼看到你被想念了 会感觉自己好像立刻被幸福包围了 ...
    井生若初阅读 163评论 0 0
  • 前天进了一个公众号互粉群,胡乱加了一阵子。然后是深深的失落和挫败感。 他们信心满满,动力十足,在热情地推广着自己的...
    逸黎阅读 518评论 4 3