首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ios Category

Category简介 category是Objective-C 2.0之后添加的语言特性,category的主要作用是为已经存在的类添加方法。...声明私有方法 category的其他几个使用场景: 模拟多继承 把framework的私有方法公开 Category真面目 typedef struct category_t { const...; 从category的定义也可以看出category可以添加实例方法,类方法,甚至可以实现协议,添加属性。...,那么category附加完成之后,类的方法列表里会有两个methodA 2)、category的方法被放到了新方法列表的前面,而原来类的方法被放到了新方法列表的后面,这也就是我们平常所说的category...Category 为什么不能添加实例变量 通过结构体 category_t ,我们就可以知道,在 Category 中我们可以增加实例方法、类方法、协议、属性。

40410
您找到你想要的搜索结果了吗?
是的
没有找到

iOS中的Category

什么是Category 在OC中,扩展一个类的方式有两种:继承与分类 可以在不修改原来类的基础上,为这个类扩充一些方法 一个庞大的类可以分模块开发 Category的格式 通过Category给某类添加方法...,分为声明和实现俩部分 创建Category时,必须给Category的名称加上专用前缀 创建Category的方法时,必须给方法名称加上专用前缀 分类声明 @interface Person (Play...Person+Play.h" @implementation Person (Play) - (void)pGotoTheCinema{ } - (void)pGotoSportGame{ } @end Category...的类型 Class-continuation类型的Category 它必须定义在其所接续的那个类的实现文件中 此分类可以声明属性,且此分类没有特定的是现实文件,其中方法都定义在主实现文件中 一般存放不需要对外公开的属性...的注意事项 Category只能添加方法,不能添加属性。

14110

No category parents插件帮你去掉分类链接中的category前缀

这款五星级的No category parents插件唯一的功能就是帮你去掉WordPress分类链接中category前缀,经本人测试,无需任何设置安装启用插件后那个不顺眼的category前缀消失了...,保存更改后,网址中的category前缀消失。...不过如果你的固定链接形式中无“/%category%/”更改后,点击文章会出现404页面,所以必须在固定链接常规设置中形式中添加/%category%/”,比如我用的固定链接形式是: /%postname...%.html 更改分类目录前缀后,必须在前面加上“/%category%/”,如下: /%category%//%postname%.html 这样又会影响到文章的URL形式,哪种方法比较好自行选择吧...另一款功能类似的插件:Remove Category URL 官网下载 | 网盘下载 | 网盘下载 (提取码: zi3r )

32820

iOS Category实现原理

iOS Category实现原理 实现原理 我们不主动引入 Category 的头文件,Category 中的方法都会被添加进主类中。...我们可以通过 - performSelector: 等方式 对 Category 中的相应方法进行调用 a) 将 Category 和它的主类(或元类)注册到哈希表中; - b)如果主类(或元类)已实现...1.category结构体 所有的OC类和对象,在runtime层都是用struct表示的,category也不例外,在runtime层,category用结构体category_t. category...分类的实现原理是将category中的方法,属性,协议数据放在category_t结构体中,然后将结构体内的方法列表拷贝到类对象的方法列表中。...Category可以添加属性,但是并不会自动生成成员变量及set/get方法。因为category_t结构体中并不存在成员变量。

1.2K20

iOS RunTime之六:Category

在runtime.h中查看定义中: typedef struct objc_category *Category; 同样也是一个 objc_category 结构体,定义如下: struct objc_category...instanceMethods:category中所有给类添加的实例方法的列表。 classMethods:category中所有添加的类方法的列表。...还有一个需要注意到的事实就是 category 的名字用来给各种列表以及后面的 category 结构体本身命名,而且有 static 来修饰,所以在同一个编译单元里我们的 category 名不能重复...其次,编译器生成了 category 本身 _OBJC_$_CATEGORY_Person_$_Student,并用前面生成的列表来初始化 category 本身。...通过以上可以看出: Category 的方法没有“完全替换掉”原来类已经有的方法,也就是说如果 Category 和原来类都有 methodA,那么 category 附加完成之后,类的方法列表里会有两个

60220
领券