类扩展

类扩展 (Class Extension也有人称为匿名分类)

  • 作用:
    • 能为某个类附加额外的属性,成员变量,方法声明
    • 一般的类扩展写到.m文件中
    • 一般的私有属性写到类扩展
    • 和类别相似,但是小括号里面没有扩展的名字,就像匿名的类别
  • 使用格式

@interfaceViewController()

//在这里定义属性

//也可以声明方法

@end

总结 :1,一般的时候,Extension都是放在.m文件中@implementation的上方。否则编译会报错。

属于私有属性和方法和方法,(即 只能在本类的.m文件调用,如果在其他类里面,本类的对象是不可以调用的),某些情况下,我们需要声明一个@property,它对外是只读的(readonly),而对内是可读写的(readwrite),这时,可以通过Extensions实现

2,类扩展只能针对自定义的类,不能给系统类增加类扩展。类扩展定义的方法必须在类的实现中进行实现( <u>因为单独定义类的扩展的话 是只生产一个.h文件的(例如 Person</u><u>_extension.h),而类别是会生成.h .m两个文件的,因此 类别可以在自己的文件里面实现自己的实现方法,而扩展只能在需要扩展的类里面去进行扩展</u>)。如果单独定义类扩展的文件并且只定义属性的话,也需要将类实现文件中包含进类扩展文件,否则会找不到属性的set和get方法。

类别

分类的小括号中必须有名字

@interface 类名(分类名字)
/*方法声明*/
@end
@implementation类名(分类名字)
/*方法实现*/
@end

分类只能扩充方法,不能扩展属性和成员变量(如果包含成员变量会直接报错)。如果分类中声明了一个属性,那么分类只会生成这个属性的set、get方法声明,也就是不会有实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,001评论 8 265
  • 三连的口号是,特战三连,骁勇善战,纵有千难,不及我胆!孙英硕自参加夏令营以来,年龄上稍大一点,感觉比较成,跟小大人...
    东平教官阅读 3,093评论 2 0
  • 每天清晨六点11分 你的歌声唤醒我的梦 睁开眼的瞬间 隐约看到朦胧的你 向我微笑着招手 无论刮风下雨 还是严寒酷署...
    叫我梅芳就好阅读 2,990评论 0 2
  • 还没长大的时候,总是会幻想长大后会遇到什么样的白马王子。喜欢看的一些电视剧的桥段也会强加到自己身上。长大后,发现爱...
    仰望45度角的天空阅读 1,382评论 0 0

友情链接更多精彩内容