关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol
2014-11-22 19:58
603 查看
关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol
2014-02-18 19:57 315人阅读 评论(0) 收藏 举报1.category,覆盖原类的方法,即使不引用该category头文件,也能覆盖,respondsToSelector:方法也能响应。
2.category,不可以有私有变量,但是可以有@property的声明,property的声明只是声明了该类的set,get方法(需要引用该category的头文件),但是category实现的m文件里面根本就没有生成这两个方法,所以你使用self.xxx时,会挂掉,错误提示:没有get/set方法。
你在category的m文件里面@synthesize 也无法声明,
也就是说,有声明,无实现。
3.category的静态方法,可以使用,
即使不声明,而是直接去实现,
调用的时候(无需引用category的h文件)虽然会有警告,但依然会执行。
调用的时候,只能用类名,用对象的话,会挂掉。
关于协议@Protocol
协议不能实例化,所以不能有实例变量(或者叫私有变量),但是可以有@property声明,这个声明,只是告诉别人这个协议里面有set,get方法而已。
注意:尽量不要在@Protocol用@property声明,很容易出毛病,特别是输出属性时。
如果要使用@property的话,可以参考 UITextInputTraits,这个官方协议里面都是@property
协议时可以有静态函数的。这个和java里面的接口有点冲突,接口时不可以有静态函数的。
协议里面不能定义static常量,定义时没错,一旦引用该文件,但编译报错
非正式协议就时一个分类,category,用于根类的category。
例如@interface NSObject (类别名称)
但是在object-2.0中,已经用@optional代替了非正式协议
相关文章推荐
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol&nbsp
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 
- iOS 在类别里添加成员变量的方法:objc_setAssociatedObject
- 在分类及预测任务中对高维类别(category)变量的预处理方法
- iOS的常见问题---Object-C有私有方法吗?私有变量呢?多重继承?
- 【iOS知识学习】_协议(delegate)和类别(category)
- category (类别) 和 protocol (协议)
- 关于.NET中的静态方法、变量的问题
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
- Objective-C——Message(消息)、Category(分类) 、Protocol(协议) 总结
- OC学习7——@class、Category分类、protocol协议
- [转载]category与protocol(Object-C 的非正式协议和正式协议)
- 特性 property 类别 category 协议 protocol
- 关于静态变量,静态代码块,非静态变量,构造方法中变量实例化顺序
- 【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法
- 【iOS】object-c调用静态方法
- Objective-C,ios,iphone开发基础:分类(category,又称类别)
- Objective-C中的协议(Protocol)和类别(Category)
- iOS: NSKeyedArchiverDelegate Protocol的方法archiver:willReplaceObject:withObject: