我可以声明a';协议';键入Objective-C接口?
我的想法非常类似于在java中声明接口类型的变量 那么比如说, 头文件1:我可以声明a';协议';键入Objective-C接口?,objective-c,Objective C,我的想法非常类似于在java中声明接口类型的变量 那么比如说, 头文件1: @protocol Calculator @end 然后我定义了一个@接口计算器mpl,它实现了上述计算器协议 在头文件2中: @interface SomeViewController : UIViewController { } @property (weak, nonatomic) IBOutlet UITextField *txtResult; @property (weak, nonatomic) C
@protocol Calculator
@end
然后我定义了一个@接口计算器mpl
,它实现了上述计算器
协议
在头文件2中:
@interface SomeViewController : UIViewController {
}
@property (weak, nonatomic) IBOutlet UITextField *txtResult;
@property (weak, nonatomic) Calculator* calculator;
@end
但是,xcode将在计算器行标记错误
property with 'weak' attribute must be of object type
objective-c是否不允许使用此协议?您应该使用
@property (weak, nonatomic) id <Calculator> calculator;
由于
CalculatorImpl
是一个接口,而不是一个协议。a@protocol
不是一个类型,因此不能将其用于@属性的类型
您可能想做的是:
@property (weak, nonatomic) id <Calculator> calculator;
@属性(弱、非原子)id计算器;
这声明了一个对其类型没有限制的属性,除非它符合计算器
协议。如何通过将属性设置为type anyobject,在swift中创建对其类型没有限制的属性?
@property (weak, nonatomic) id <Calculator> calculator;