如果我有一个委托,它位于自己的头文件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
答案 0 :(得分:0)
是的,这是完全正确的。
myDelegate
除外MyDelegate
。{{1}}。这不是一个语法错误,并且会完美执行,但标准的objective-c约定表明你应该永远定义一个小写的第一个字符的委托。