objective-c类初始化
2015-06-30 15:57
573 查看
并不一定要要为自己的类创建初始化函数。如果不需要设置任何状态 或者alloc方法将内存清零的默认行为相当不错 则不必去在意init方法
如果创建了一个指定初始化函数 则一定要在自己的指定的初始化函数中调用超类的指定初始化函数
如果初始化函数不止一个 则需要选择一个指定初始化函数 被选定的初始化函数应当调用超类的指定初始化函数
要按照指定初始化函数的形式实现所有的初始化函数
@property 预编译指令的作用是自动声明属性的setter和getter方法
@synthesize 表示创建该属性的访问预编译代码
复制对象,为什么不保留对象?
复制字符串参数 一种常见的错误就是从用户界面如文本框中获得一个字符串 并将其作为某事物的名称使用
文本框中的字符串通常都是可以变字符串会因为用户输出新的内容而发生变化
复制字符串可以防止因意外的变化而产生不利的影响
不保留对象是因为有一种特殊的情况叫做保留死循环 它会令引用计数器发生鼓掌 如果两个
实体是拥有和被拥有的关系 一般的规则是所拥有着对象保留被拥有者的对象而不是被拥有者的对象保留所有者的对象
类别是一种为现有的类添加新方法的方式~~~~
类别的缺陷:
1.无法向类中添加新的实例变量 类别没有空间容纳实例变量
2.名称冲突,也就是类别中的方法和现有的方法重名 当发生名称冲突时 类别具有更高的优先级
类别的主要用途:
1.将类的实现代码分散到多个不同文件或框架中
2.创建对私有方法的前向引用
3.向对象添加非正式协议
如果创建了一个指定初始化函数 则一定要在自己的指定的初始化函数中调用超类的指定初始化函数
如果初始化函数不止一个 则需要选择一个指定初始化函数 被选定的初始化函数应当调用超类的指定初始化函数
要按照指定初始化函数的形式实现所有的初始化函数
@property 预编译指令的作用是自动声明属性的setter和getter方法
@synthesize 表示创建该属性的访问预编译代码
复制对象,为什么不保留对象?
复制字符串参数 一种常见的错误就是从用户界面如文本框中获得一个字符串 并将其作为某事物的名称使用
文本框中的字符串通常都是可以变字符串会因为用户输出新的内容而发生变化
复制字符串可以防止因意外的变化而产生不利的影响
不保留对象是因为有一种特殊的情况叫做保留死循环 它会令引用计数器发生鼓掌 如果两个
实体是拥有和被拥有的关系 一般的规则是所拥有着对象保留被拥有者的对象而不是被拥有者的对象保留所有者的对象
类别是一种为现有的类添加新方法的方式~~~~
类别的缺陷:
1.无法向类中添加新的实例变量 类别没有空间容纳实例变量
2.名称冲突,也就是类别中的方法和现有的方法重名 当发生名称冲突时 类别具有更高的优先级
类别的主要用途:
1.将类的实现代码分散到多个不同文件或框架中
2.创建对私有方法的前向引用
3.向对象添加非正式协议
相关文章推荐
- Coroutine couldn't be started because the the game object 'GameController' is inactive!
- Understanding the Objective-C Runtime
- Github上优秀的Objective-C项目简介
- php分析MSSQL返回的时间位object,怎样输出时间?
- Could not reserve enough space for object heap 问题解决
- Github上优秀的Objective-C项目简介
- org.tinygroup.context2object-参数对象构建
- JavaSE实战——API(上) Eclipse使用、Object、Scanner、String、StringBuffer、StringBuilder、Integer、模拟用户登录案例
- 15 面向对象 抽象类 内部类 Object类
- Objective-C程序设计第10章---More on Variable and Data Types
- Thread: staticMetaObject
- 【Objective-C】-空指针和野指针
- jQuery - 基于serializeArray的serializeObject
- GetObject 函数的使用
- iOS Objective c 16进制字符串转为二进制数组
- qobject_cast & sender()
- Objective-C编码规范:26个方面解决iOS开发问题
- Objective-C Associated Objects 的实现原理
- QT中添加Q_OBJECT时编译提示obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const错误解决方法
- ceph-objectstore-tool工具使用示例