iOS 小记

作者: 72行代码 | 来源:发表于2019-05-09 17:53 被阅读2次

    1. setter和getter方法命名规则

    • setter方法根据它所更改的属性名称来命名,并加上前缀set。如:setName: 、setEngine: 等。
    • getter方法则是以其返回的属性名称命名。如:name、engine 等。不要将get用作getter方法的前缀。
    • 补充知识:get这个词在Cocoa中有着特殊的含义。如果get出现在Cocoa的方法名称中,就意味着这个方法会将你传递的参教作为指针来返回数值。例如,NSData 中有一个getBytes:方法,它的参数就是用来存储字节的内存缓冲区的地址。如果你在存取方法的名称中使用了get,那么有经验的Cocoa编程人员就会习惯性地将指针当做参数传入这个方法,当他们发现这不过是一个简单的存取方法时就会感到困惑。

    2. 正确比较字符串

    • 比较字符串是否相等,应该使用isEqualToString: ,而不能仅仅比较字符串的指针值;== 运算符只判断两个字符串的指针数值,而不是它们所指的对象。

    3. 属性值

    • 如果没有为属性指定任何特性,它们会默认使用nonatomic和assign。如果自定义了setter或getter方法,那么就不能使用atomic特性了,必须使用nonatomic特性。

    4. Core Foundation 对象内存管理

    • 对于底层Core Foundation对象,我们只需要延续以前手动管理引用计数的办法即可(CFRetain、 CFRelease);
    • ARC下,需要将一个Core Foundation对象转换成一个OC对象,这时候我们需要告诉编译器,装换过程中的引用计数需要如何调整

    5. 并发和并行的区别

    • 并发,指的是多个事情,在同一时间段内同时发生了
    • 并行,指的是多个事情,在同一时间点上同时发生了
    • 并发的多个任务之间是互相抢占资源的
    • 并行的多个任务之间是不互相抢占资源的,
      只有在多CPU的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。

    附:我的博客地址

    相关文章

      网友评论

        本文标题:iOS 小记

        本文链接:https://www.haomeiwen.com/subject/kxmziftx.html