Objective c 是否可以使用符合协议的类类型定义属性?
例如,我有Objective c 是否可以使用符合协议的类类型定义属性?,objective-c,objective-c-category,objective-c-protocol,Objective C,Objective C Category,Objective C Protocol,例如,我有MyFancyData协议。如何指定MyFancyDataClass属性只接受符合此协议的类 @interface MyObject : NSObject @property Class MyFancyDataClass; 你是说像这样的事吗 @interface MyObject : NSObject @property (nonatomic, assign) Class<MyFancyData> cls; @end @接口MyObject:NSObject @属
MyFancyData
协议。如何指定MyFancyDataClass属性只接受符合此协议的类
@interface MyObject : NSObject
@property Class MyFancyDataClass;
你是说像这样的事吗
@interface MyObject : NSObject
@property (nonatomic, assign) Class<MyFancyData> cls;
@end
@接口MyObject:NSObject
@属性(非原子,赋值)类cls;
@结束
@属性id myFancyDataClass;
不,我需要一个类类型的属性。它可以工作,但似乎没有改变任何东西。我仍然可以将任何类的对象设置为此属性。您可以设置对象吗?这是一个类属性。我可以设置一个不符合属性定义中指定的协议的类。我想它不会比这个更好。myFancyDataClass
是符合MyFancyData的类的对象。但是我需要一个Class
type的对象。id基本上是指任何类。所以它会起作用。或者您可以使用对象
@property id<MyFancyData> myFancyDataClass;