多种协议的语法

时间:2011-02-18 19:43:32

标签: objective-c

多种协议的Objective-C语法是什么?

4 个答案:

答案 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)

对于具有多个委托的对象(而不是作为多个对象或类的委托):

  1. 委托对象必须 有一个代理实例的NSArray 变量

  2. setDelegate setter方法会 然后必须添加一个委托对象 到这个数组而不是只是 将其分配给一个实例 变量

  3. send-to-delegate代码会有 遍历委托 NSArray,而不是检查 只有一个委托实例变量 在检查之前是非零的 消息处理和呼叫 随着消息。

  4. 所有对象或要求委派给自己的类都没有什么改变。

答案 3 :(得分:0)

是的,我想多协议的舒适性问题如下:

@interface MyViewController () <protocol1, protocol2, protocol3>