Objective-C从委托方法驻留在另一个类中的类调用委托方法

时间:2011-12-15 23:31:39

标签: objective-c delegates

如果我有一个委托,它位于自己的头文件myDelegate.h中。然后我有一个实现委托协议的类(ClassOne)(因此实现了委托函数)。然后我创建了另一个具有myDelegate实例变量的类(ClassTwo)。然后我可以使用此变量来调用驻留在ClassOne中的函数吗?

以下是代码:

//myDelegate.h
@protocol myDelegate <NSObject>

- (BOOL)myFunction:(NSString*)sString;

@end


//ClassOne.h
@interface ClassOne : NSObject <myDelegate> {

}

- (BOOL)myFunction:(NSString*)sString;

@end

//ClassOne.m
#import "ClassOne.h"
@implementation ClassOne

- (BOOL)myFunction:(NSString*)sString
{
    //do stuff
}

@end


//ClassTwo.h
#import "myDelegate.h"
@interface ClassTwo : NSObject {
    id<myDelegate> del;
}

@property (nonatomic, retain) id<myDelegate> del;

@end

//ClassTwo.m
#import "ClassTwo.h"
@implementation ClassTwo

- (void)aFunction:(NSString*)string
{
    [del myFunction:string];
}

@end

1 个答案:

答案 0 :(得分:0)

是的,这是完全正确的。

myDelegate除外MyDelegate。{{1}}。这不是一个语法错误,并且会完美执行,但标准的objective-c约定表明你应该永远定义一个小写的第一个字符的委托。