objective-c - 我可以在 Objective-C 接口(interface)中声明一个 'protocol' 类型的变量吗?

标签 objective-c

我的想法很像在java中声明一个接口(interface)类型的变量。

例如,

头文件1:

@protocol Calculator

@end

然后我定义了一个 @interface CalculatorImpl 来实现上面的 Calculator 协议(protocol)。

在头文件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 是否不允许使用协议(protocol)?

最佳答案

@protocol 不是类型,因此您不能将它用于 @property 的类型。

您可能想要做的是:

@property (weak, nonatomic) id <Calculator> calculator;

这声明了一个对其类型没有限制的属性,除了它符合 Calculator 协议(protocol)。

关于objective-c - 我可以在 Objective-C 接口(interface)中声明一个 'protocol' 类型的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360902/

相关文章:

objective-c - viewWillAppear 未被调用

ios - 从xml字符串Objective-c获取子字符串

objective-c - 制作线条动画的最简单方法是什么?

iphone - UITableView - 扩展单元格

iphone - 核心数据中带有嵌套对象数组的 Restkit 复杂对象映射

objective-c - 图片下载的顺序不正确

iphone - audioPlayerDidFinishPlaying : called之后的EXC_BAD_ACCESS

objective-c - fmdb executeUpdate 失败

objective-c - Cocoa 中的 GB 有多大?

ios - 我如何获取设备数据?