第三章 北风网 iOS 面试题库(一):辨析 iOS 易混淆知识点.pdfVIP

第三章 北风网 iOS 面试题库(一):辨析 iOS 易混淆知识点.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北风网 iOS 经典面试题库(一):iOS 易混淆知识点辨析 写在前面 :“分享”看似在输出,但实际上是获得更多。用我们北风网的口号就 是 “不懂得分享的人,不会很快乐;不懂得分享的机构,不是好机构”。所以, 我们北风网不定期会给大家分享一些干货,所有的内容仅供学习之用,也希望大 家能将 “分享的精神”传递下去。 一、堆与栈的区别 栈 :是由系统自动分配释放的一块存储空间,存放函数的参数值,、局部变量等 (数据类型,以及定义的变量和对象的指针),类似于数据结构中的 堆:一般由程序员自己手动释放,存放 OC 对象,程序员不手动释放,会到最够 关闭程序时对象才会被释放掉,分配方式类似于链表。 二、instancetype 和 id 的区别 instancetype :返回的指针指向的类型是已知的,不可以当方法的参数使用,只 能作为返回值。 id :返回的指针指向的类型是未知,可以当做方法的参数使用,也是可以作为返 回值 三、MRC 与ARC 的区别 ARC :自动管理内存计数器。不需要程序员管理内存,编译器会在恰当的时候给 我们填上 reatin、release 等代码。 注意:oc 中的ARC 和 JAVa 里面的垃圾回收机制不太一样,Java 中的垃圾回收 机制是系统帮忙干的,而 oc 中的ARC 是编译器干的。 ARC 是编译器特性(编译器会在恰当的时候给我们填上 reatin、release 等代码), 不是运行时特性。 MRC :手动管理内存计数器。需要程序要自己恰当的地方自己写上release 和 retain 代码。 四、野指针和空指针的区别 野指针:表示指针指向了一个被释放的对象,也成“僵尸对象”。只要给野指针 发送消息,程序就会报错。 空指针:指向没有储存控件的指针(就是指针设置为 nil )。我们一般为了避免给 野指针发送消息,当一个对象被释放后我们都将这个对象的指针设置为空指针。 给空指针发送消息不会报错 五、property 修饰符 (1 )readonly :只读的,修饰的属性只自动生成getter 方法 (2 )readwrite :可读可写的,修饰的属性可以自动生成getter/setter 方法。 默认情况下是 readwrite 。 (3 )retain :自动帮我们生成getter/setter 方法,并且生成的是内存管理代码 (引用计数器+1 )。 (4 )assign :不会自动帮助我们在setter/getter 方法中生成内存管理代码, 仅仅生成普通的 六、getter 与 setter 方法 getter :可以给getter 方法起一个名字 setter :可以给setter 方法起一个名字 七、+(void)load 和+(void)initialize 的区别 (1 ) + (void )load :表示程序开始加载到内存时调用2.自身未定义,不会 沿用父类的方法。3.lei 别中的定义全部执行,先执行类自身的实现,再执行类 别(Category)中的实现 (2 ) + (void )initialize :便是该类首次使用将被调用 2.自身未定义,hui 沿用父类的方法。3.类别中的定义,会执行最后一个,并且覆盖类的方法 /ider/archive/2012/09/29/objective_c_load_vs_i nitialize.html 八、weak 和 strong assign strong :强引用,用于OC 对象,相当于 MRC 中的 reatin ,引用计数器加1 weak :弱引用,用于OC 对象,相当于 MRC 中的assign ,引用计数器不加1 assign :用于一般数据类型,和MRC 中的assign 一样,引用计数器不加 1 九、category 的使用 (1 )category 的声明: @interface Person (WJPerson) -(void)goShopping; @end (2 )category 的实现: @implementation Person (WJPerson) -(void)goShopping { NSLog(@去购物); } @end (3 )category 的使用: 1 )category 可以在不改变原有类的基础上,给类扩充一些方法 2 )可以让庞大的类分模块开发。 3 )一个庞大的类进行多人开发,更利于团队合作。 (4 )category 的注意点: 1 )分类不能扩充属性和成员变量,只能给类扩充方

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档