码迷,mamicode.com
首页 > 移动开发 > 详细

一些iOS的小知识点(持续更新???)

时间:2015-04-21 00:30:43      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

有两年没有开发iOS了,最近又开始接触iOS开发,发现好多旧知识忘记了,好多新知识还不知道。

最近正在学习中,一些心得做下memo,也可以和大家分享一下。


初始化方法的返回值类型(类名,id,instancetype)

初始化方法的返回值一般设成id。为什么呢?为什么不设成类名呢?如果你设成类名,子类就不好处理了。比如说子类想覆盖父类的初始化方法,但想返回自己的类型,就不好处理了。所以一般返回id类型。

但是id类型不是type safe的。比如说,NSString *str = [NSArray array]; 编译器是检查不是来的,等到运行的时候就会崩溃的。

后来LLVM编译器出来之后,建议使用instancetype来代替id。凡是返回值是instancetype的方法,编译器都会检查返回值,如果没有返回本类或者子类,都会报编译错误。


NSInteger和int,long

NSInteger类型可以代表一个int类型或者一个long类型,我们推荐使用NSInteger,是因为它会根据手机的处理器来决定到底用int还是long,如果处理器是32位的,那么就用32位的int,如果处理器是64位的,那么就用64位的long。从A7处理器(iPhone 5S)开始,苹果开始采用64位的处理器。

一些iOS的小知识点(持续更新???)

标签:

原文地址:http://blog.csdn.net/tianjf0514/article/details/45156423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!