并不一定要要为自己的类创建初始化函数。如果不需要设置任何状态 或者alloc方法将内存清零的默认行为相当不错 则不必去在意init方法
如果创建了一个指定初始化函数 则一定要在自己的指定的初始化函数中调用超类的指定初始化函数
如果初始化函数不止一个 则需要选择一个指定初始化函数 被选定的初始化函数应当调用超类的指定初始化函数
要按照指定初始化函数的形式实现所有的初始化函数
@property 预编译指令的作用是自动声明属性的setter和getter方法
@synthesize 表示创建该属性的访问预编译代码
复制对象,为什么不保留对象?
复制字符串参数 一种常见的错误就是从用户界面如文本框中获得一个字符串 并将其作为某事物的名称使用
文本框中的字符串通常都是可以变字符串会因为用户输出新的内容而发生变化
复制字符串可以防止因意外的变化而产生不利的影响
不保留对象是因为有一种特殊的情况叫做保留死循环 它会令引用计数器发生鼓掌 如果两个
实体是拥有和被拥有的关系 一般的规则是所拥有着对象保留被拥有者的对象而不是被拥有者的对象保留所有者的对象
类别是一种为现有的类添加新方法的方式~~~~
类别的缺陷:
1.无法向类中添加新的实例变量 类别没有空间容纳实例变量
2.名称冲突,也就是类别中的方法和现有的方法重名 当发生名称冲突时 类别具有更高的优先级
类别的主要用途:
1.将类的实现代码分散到多个不同文件或框架中
2.创建对私有方法的前向引用
3.向对象添加非正式协议
本文深入探讨了Objective-C中对象复制与保留机制的重要性。解释了复制对象的原因,强调了复制字符串而非直接使用文本框内容的重要性,以避免因用户输入变化导致的数据不一致。同时阐述了保留对象的概念及其潜在的保留死循环风险,强调了对象之间正确保留关系的建立。文章还介绍了类别的使用场景及优缺点,包括类别如何提供额外的方法和如何避免名称冲突。通过实例和代码示例,帮助开发者更好地理解和应用Objective-C中的这些关键概念。
601

被折叠的 条评论
为什么被折叠?



