Objective c 我们必须实现协议的所有方法和属性吗?
我只想在Objective-C中问你,如果我们符合我们类中的协议,我们必须实现协议中声明的所有方法吗Objective c 我们必须实现协议的所有方法和属性吗?,objective-c,protocols,Objective C,Protocols,我只想在Objective-C中问你,如果我们符合我们类中的协议,我们必须实现协议中声明的所有方法吗 @interface MyClass:NSObject<NSCopying, NSCoding> { } @end @接口MyClass:NSObject { } @结束 在本例中,我必须实现NSCopying和NSCoding协议中的所有方法吗?您必须实现标记为@required的所有方法,是的。这是协议的全部要点;它定义了一组必须实现以符合协议的可选和必需方法 如果超类实现
@interface MyClass:NSObject<NSCopying, NSCoding>
{
}
@end
@接口MyClass:NSObject
{
}
@结束
在本例中,我必须实现NSCopying和NSCoding协议中的所有方法吗?您必须实现标记为
@required
的所有方法,是的。这是协议的全部要点;它定义了一组必须实现以符合协议的可选和必需方法
如果超类实现了该协议,那么您将继承该实现,但它不太可能足以进行
NSCopying
或NSCoding
。因此,您将覆盖这些方法(并在您的方法中调用super
的实现)。您必须实现标记为@required
的所有方法,是的。这是协议的全部要点;它定义了一组必须实现以符合协议的可选和必需方法
如果超类实现了该协议,那么您将继承该实现,但它不太可能足以进行
NSCopying
或NSCoding
。因此,您将覆盖这些方法(并在您的中调用super
的实现)。不实现这些方法,您希望得到什么?如果协议对实现没有影响,那么采用协议有什么意义?实际上,如果在采用NSCopying
时没有实现复制,您将如何期望复制MyClass
的实例?同样地,对于编码,您希望通过不实现这些方法获得什么?如果协议对实现没有影响,那么采用协议有什么意义?实际上,如果在采用NSCopying
时没有实现复制,您将如何期望复制MyClass
的实例?同样地,编码呢?