0

我尝试为某些配置设置设置协议,我知道我的协议没有被识别,因为我没有将委托设置为 self。但是我的问题来了,我有 2 个类:Manager 和 Configurator。

Manager 类将消息发送到自己定义的协议。Configurator 类采用协议并实现它。

经理类:

@protocol ManagerDelegate <NSObject>

- (NSDictionary *)getString:(NSString *)type;
@end
@property (nonatomic, assign) id<ManagerDelegate> delegate;

-(void)someMethod{
 NSSting *test = [self.delegate getString:@"protocol"];

配置类:

 @interface Configurator : NSObject <ManagerDelegate>
 .....

在 .m 文件中

 - (NSDictionary *)getString:(NSString *)type{
    return type;}

我不想或不需要实例化 Configurator 类或 Manager 类,或者这是完全必要的?

谢谢你的帮助!

4

2 回答 2

0

无需在这里创建委托。 - (NSDictionary *)getString:(NSString *)type是类中的方法,Configurator它是 的子类NSObject。您可以在 Manager 类中创建 Configurator 类的实例,并使用该实例访问 Configurator 类的方法。

 -(void)someMethod{
Configurator *objConfigurator = [[Configurator alloc] init];//Or You can declare instance in Configurator.h.
 NSSting *test = [objConfigurator getString:@"protocol"];
}

我想这会对你有所帮助。

于 2013-01-04T06:29:10.583 回答
0

当你的config班级allocmanager班级时,它需要说[self.manager setDelegate: self]否则manager班级不知道config班级是它的代表。
为了使用定义的任何方法或协议,这两个类都需要在某个地方实例化。

于 2013-01-04T05:55:53.947 回答