多种协议的Objective-C语法是什么?
答案 0 :(得分:22)
@interface MyClass : MySuperClass <Delegate1, Delegate2, Delegate3> {
//instance variables
}
//properties
//methods
答案 1 :(得分:1)
您可以通过两种方式实现多种协议:
方法1
for (i in 1:NROW(test_data_rows)) {
if (!is.na(test_data_rows$e[i] == TRUE)) {
Category1[i] <- test_data_rows$e[i]*test_data_rows$c[i]*(test_data_rows$b[i]
/ test_data_rows$a[i])
} else if (!is.na(test_data_rows$d[i] == TRUE) & is.na(test_data_rows$e[i])
== TRUE) {
Category1[i] <- (0.432 * test_data_rows$d[i] * (test_data_rows$b[i] /
test_data_rows$a[i]))
} else if (is.na(test_data_rows$d[i] == TRUE) & is.na(test_data_rows$e[i] ==
TRUE)) {
Category1[i] <- (0.101 * 0.432*(test_data_rows$b[i] / test_data_rows$a[i]))
}
}
方法2
@protocol p1 <NSObject>
-(void)M1
-(void)M2
@end
@protocol p2 <NSObject>
-(void)M3
-(void)M4
@end
@interface MyViewController () <p1,p2>
答案 2 :(得分:0)
对于具有多个委托的对象(而不是作为多个对象或类的委托):
委托对象必须 有一个代理实例的NSArray 变量
setDelegate setter方法会 然后必须添加一个委托对象 到这个数组而不是只是 将其分配给一个实例 变量
send-to-delegate代码会有 遍历委托 NSArray,而不是检查 只有一个委托实例变量 在检查之前是非零的 消息处理和呼叫 随着消息。
所有对象或要求委派给自己的类都没有什么改变。
答案 3 :(得分:0)
是的,我想多协议的舒适性问题如下:
@interface MyViewController () <protocol1, protocol2, protocol3>