关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol&nbsp

转载 2016年06月02日 09:53:38
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&nbsp

转自: 作者:舍得333 主页:http://blog.sina.com.cn/u/1509658847 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明,...

IOS开发基础Object-C(13)—— protocol协议

今天,来给大家讲解一下OC中@protocol的用法,什么是protocol呢?从字面的意思上来说是协议的意思,那么到底什么是协议呢?那我们来普及一下协议的概念。 协议的概念 (1)协议相当于没有...

Object-C 学习笔记(二十)---类目(类别)Category

类目:可以扩充不能被继承的类的功能(方法),属于公有,跟在类里写没区别可以被子类继承,一般不要覆盖原来类的方法,因为延展的执行级别比原本类高. 注意: (1)不能添加实例变量        ...

object-c学习:类别Category

一直不明白类别的意思,因为C和java都没有类似的概念。 看到如下的描述,比较清晰,供大家参考:    如果你想扩充一个类的功能,但又不想使用继承,你可以选择类别。 下面我们写一个Fracti...

object-c category 和 protocol

这两个都是mac下的协议,用法有点像C++中的函数重载和虚函数。 首先Category: 它可以给原有的类增加新的方法,而不用重新建一个类,然后在原有的类的基础上使用这个方法,但是不能给类增加新的数...

Object-C 分类(Category) 和 扩展(Extension)

分类(Category)分类作为一种编译的手段,允许通过类添加方法来扩展原有类。但只能是方法,不能够添加实例变量的扩展。常用文件名 类名+分类名.h(.m) Pay attention here, ...

Object-C基础(9)——多态、类别、扩展与协议

多态     多态的概念和产生     变态:相同类型的对象,在同一件行为(方法),但某个对象表现成与众不同的行为(态),此时就称之为变态。     多态:相同类型的对象,在执行同一个方法时,表...

Objective-C——Message(消息)、Category(分类) 、Protocol(协议) 总结

Ojbective-C的语法设计主要基于Smalltalk,除了提供传统的面向对象编程特性之外,还增加了很多类似动态语言Ruby、Python才具有的特性,例如动态类型、动态加载、动态绑定等等,同时强...

Objective-C分类 (category),扩展(Extension)和协议(protocol)

@类目-分类(category) 1.类目: 类目(也成类别:Category)是一种为现有类添加新方法的方式 2.类目的局限性: 1)类目无法向已有的类中添加实利变量; 2)如果类目中的方法和已有类...

Object-C 学习笔记(二十二)--- 协议Protocol

协议:相当于其他面相对象语言中得抽象类(@optional)或者是接口(@required),弥补面相对象多继承. 于接口的区别:java  C# C++中的接口或抽象类可以通过子类实例化对象,进行向...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)