Objective c 什么是协议?
我已经读了文档,但仍然感到困惑。有人能解释一下协议是什么吗?(您可以给出代码示例,但我确实在寻找解释)。实际上,ObjtoVC++中的协议与java中的接口非常相似,或者C++中的纯虚拟类非常类似(虽然不完全是纯的虚拟类,但可以有数据成员……)。它基本上保证了一个特定的类知道如何响应一组给定的方法(消息) 编辑原来的文章不见了,所以我用另一个教程替换了它。协议是指定义类实现的必需和/或可选方法的列表。如果一个类采用一个协议,它必须在它采用的协议中实现所有必需的方法。 Cocoa使用协议通过Objective-C消息支持进程间通信。此外,由于Objective-C不支持多重继承,您可以通过协议实现类似的功能,因为一个类可以采用多个协议 协议的一个很好的例子是NSCoding,它有两个类必须实现的必需方法。该协议用于对类进行编码和解码,也就是说,通过写入永久存储器来归档对象Objective c 什么是协议?,objective-c,Objective C,我已经读了文档,但仍然感到困惑。有人能解释一下协议是什么吗?(您可以给出代码示例,但我确实在寻找解释)。实际上,ObjtoVC++中的协议与java中的接口非常相似,或者C++中的纯虚拟类非常类似(虽然不完全是纯的虚拟类,但可以有数据成员……)。它基本上保证了一个特定的类知道如何响应一组给定的方法(消息) 编辑原来的文章不见了,所以我用另一个教程替换了它。协议是指定义类实现的必需和/或可选方法的列表。如果一个类采用一个协议,它必须在它采用的协议中实现所有必需的方法。 Cocoa使用协议通过Obj
@protocol NSCoding
-(void)encodeWithCoder:(NSCoder *)aCoder;
-(id)initWithCoder:(NSCoder *)aDecoder;
@end
若要采用协议,请将协议名称附在下面类似的表格中
@interface SomeClass : NSObject <NSCoding>
{
some variables
}
如上例所示,要使用协议,请在接口中声明协议,并在类实现中编写所需的方法:
//接口
@接口另一个类:NSObject
{
some declaration
}
//实施
@另一类的实现
- (BOOL)send:(id)data
{
some declaration
}
- (id)received
{
some code
}
//可选方法
- (int)progress
{
some code
}
@end
我希望它能帮助您学习协议。除非协议定义了可选方法,否则这是一种保证。在这种情况下,您仍然需要检查该方法是否已实现。协议也可以具有属性。
- (int)progress
{
some code
}
@end