美文网首页
iOS的基本知识点二

iOS的基本知识点二

作者: Youthfulless | 来源:发表于2016-11-30 09:53 被阅读6次

一:KVC与KVO的区别!!

KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值

KVO是键值监听,可以监听一个对象属性值的改变,机制:当制定的呗观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。

二:类变量的@protected @private @public @package声明各有什么含义?

1.该类和所有子类中的方法可以直接访问这样的变量

2.该类中的方法可以访问,子类不可以访问

3.可以被所有的类访问

4.本包内使用,跨包不可以

三:通知和协议的不同之处?

1.通知:

通知需要有一个通知中心:NSNotificationCenter,自定义通知的话需要给一个名字,然后监听。

​优点:通知的发送者和接受者都不需要知道对方。可以指定接收通知的具体方法。通知名可以是任何字符串。​

缺点:较键值观察(KVO)需要多点代码,在删掉前必须移除监听者。​

2.协议

​通过setDelegate来设置代理对象,最典型的例子是常用的TableView.

优点:支持它的类有详尽和具体信息。

缺点:该类必须支持委托。某一时间只能有一个委托连接到某一对象。

五:内存管理的几条原则是什么?按照默认法则,哪些关键字生成的对象需要手动释放?哪些情况下不需要手动释放,会直接进入自动释放池?

•      当使用new、alloc或copy方法创建一个对象时,该对象引用计数器为1。如果不需要使用该对象,可以向其发送release或autorelease消息,在其使用完毕时被销毁。

•      如果通过其他方法获取一个对象,则可以假设这个对象引用计数为1,并且被设置为autorelease,不需要对该对象进行清理,如果确实需要retain这个对象,则需要使用完毕后release。

•      如果retain了某个对象,需要release或autorelease该对象,保持retain方法和release方法使用次数相等。

使用new、alloc、copy关键字生成的对象和retain了的对象需要手动释放。设置为autorelease的对象不需要手动释放,会直接进入自动释放池。​

相关文章

  • iOS 常用到的知识点(一)

    iOS 常用到的知识点(一)iOS 常用到的知识点(二)iOS 常用到的知识点(三) 1. CGRectGetM...

  • iOS 常用到的知识点(三)

    iOS 常用到的知识点(一)iOS 常用到的知识点(二)iOS 常用到的知识点(三) 1. navigationB...

  • iOS 常见知识点(一):Runtime

    iOS 常见知识点(二):RunLoop iOS 常见知识点(三):Lock Runtime Runtime 是一...

  • iOS 常用到的知识点(二)

    iOS 常用到的知识点(一)iOS 常用到的知识点(二)iOS 常用到的知识点(三) 1.延迟加载: 2.布尔值存...

  • iOS的基本知识点二

    一:KVC与KVO的区别!! KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值 KVO是键值...

  • iOS零碎知识点<高阶版>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<高阶版>iOS零碎知识点<工具篇>

  • 数组总结知识点

    数组是iOS开发中最基本的知识点,在此总结一下一些基本的。以后用到新的知识点在继续补充。 1、不可变数组 1、数组...

  • iOS零碎知识点<初级版>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<高阶版>iOS零碎知识点<工具篇> 优雅的隐...

  • iOS零碎知识点<工具篇>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<中阶版>iOS零碎知识点<工具篇>

  • iOS 题目详解 部分一

    主要记录一些题目所关联的知识点, 详解 iOS 题目详解 部分一iOS 题目详解 部分二iOS 题目详解 部...

网友评论

      本文标题:iOS的基本知识点二

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