最简单的IOS Block与协议
来源:互联网 发布:中国优秀小说知乎 编辑:程序博客网 时间:2024/06/11 15:34
1.延展: Extension
1). 是1个特殊的分类. 所以延展也是类的一部分.2). 特殊之处:
a. 延展这个特殊的分类没有名字.
b. 只有声明没有实现.和本类共享1个实现.
2.延展的语法
语法:
@interface 本类名 ()
@end
没有实现. 和本类共享1个实现.
3.为类添加延展的步骤
只有1个.h文件. 文件名称: 本类名_取得文件名.h
这个文件中只有延展的声明.
@interface Person ()
@end
4. 延展的基本使用.
1). 延展的本质是1个分类. 作为本类的一部分.
只不过是1个特殊的分类
没有名字.
2). 延展只有声明,没有单独的实现. 和本类共享一个实现.
5. 延展和分类的区别
1). 分类有名字.延展没有名字 是1个匿名的分类.
2). 每1个分类都有单独的声明和实现. 而延展只有声明 没有单独的实现 和本类共享1个实现,
3). 分类中只能新增方法. 而延展中任意的成员都可以写.
4). 分类中可以写@property 但是只会生成getter setter的声明.
延展中写@property 会自动生成私有属性 也会生成getter setter的声明和实现.
6. 延展的应用场景.
1). 要为类写1个私有的@property.
生成getter、setter方法只能在类的内部访问 不能在外部访问.
其实,我们可以想: @property生成私有属性、生成getter setter的实现,不要声明.
2). 延展100%的情况下不会独占1个文件. 都是将延展直接写在本类的实现文件中.
这个时候,写在延展中的成员,就相当于是这个类的私有成员.只能在本类的实现中访问.
外部不能访问.
当我们想要为类定义私有成员的时候,就可以使用延展. 将延展定义在这个类的实现文件中.
如果想要为类写1个真私有属性,虽然我们可以定义在@implementation之中.但是不要这么写 这样很不规范.
写1个延展.将这个私有属性定义在延展中.
如果要为类写1个私有方法,建议将声明写在延展中, 实现写在本类的实现中. 提供代码的阅读性
如果想要为类写1个私有的@property 就直接写在延展就可以了.
4). 延展天生就是来私有化类的成员的.
如果类的成员只希望在类的内部访问,那么就将其定义在延展中.
如果类的成员允许被外界访问 定义在本类的@interface中.
阅读全文
0 0
- 最简单的IOS Block与协议
- 最简单的IOS Block与协议 block作为函数参数的使用
- 最简单的IOS Block与协议 block是一个数据类型
- ios block传值 最简单的方法
- iOS-简单的block
- iOS 工作之余小总结 -- (五)(1) 最简单的Block教程 及Block与全局(局部)变量
- iOS协议传值与Block传值
- ios block的简单用法
- iOS-Block的简单使用
- iOS - block的简单使用
- iOS block的简单说明
- ios 简单的block传值
- iOS Block的简单使用
- iOS 协议代理.block的基本使用
- 最简单的IOS
- 最简单的IOS
- 最简单的IOS
- 最简单的IOS
- SQL数据分析概览——Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto+druid
- 链表和线性表的工具类
- laravel中跟据某个特定顺序去排序查出来的数据:FIND_IN_SET
- 动态创建Fragment
- 存储过程,使用二维数组参数【简单整理】
- 最简单的IOS Block与协议
- TASKCTL4.5(安装)单机部署
- 暑期学习记录10
- Shiro CAS对接原理一览
- Mybatis中xml判断字符串不为空和null简单方法
- oracle wm_concat函数简单实例(实现行转成用分隔符分隔的一列)
- 查找:B+树
- Python面试题
- UVA 12493 Stars(扩展欧几里德+欧拉函数)