开发者

Syntax for multiple protocols

开发者 https://www.devze.com 2023-02-11 18:31 出处:网络
What i开发者_JAVA技巧s the Objective-C syntax for multiple protocols?Could you please elaborate on your question?Otherwise this is the proper way to declare a class that conforms to multiple protocols

What i开发者_JAVA技巧s the Objective-C syntax for multiple protocols?


Could you please elaborate on your question? Otherwise this is the proper way to declare a class that conforms to multiple protocols. You specify the protocols a class conforms to after the superclass declaration in a classes header file.

@interface MyClass : MySuperClass <Delegate1, Delegate2, Delegate3> {
     //instance variables
}

//properties

//methods


You can achieve multiple protocols in two ways:

Method 1

@protocol p1 <NSObject>
-(void)M1
-(void)M2
@end

@protocol p2 <NSObject>
-(void)M3
-(void)M4
@end

@interface MyViewController () <p1,p2>

Method 2

@protocol p1 <NSObject>
-(void)M1
-(void)M2
@end

@protocol p2 <NSObject,p1>
-(void)M3
-(void)M4
@end

@interface MyViewController () <p1>


For an object to have multiple delegates (as opposed to being a delegate for multiple objects or classes):

  1. The object delegating would have to have an NSArray of delegate instance variables.

  2. The setDelegate setter method would then have to add a delegate object to this array instead of just assigning it to one instance variable.

  3. The send-to-delegate code would have to loop through the delegate NSArray, instead of checking for just one delegate instance variable to be non-nil, before checking for message handling and calling out with the message.

Nothing much would change in all the objects or the class asking for delegation to itself.


Yes, I guess the question of comfort to multi protocols is something like the following:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号