2013-01-04 96 views
0

我试图设置一些协议的配置设置,我知道我的协议没有被识别,因为我还没有设置委托给自己。但是这里出现了我的问题,我有两个类:管理器和配置器。协议未被识别

管理类将消息发送给自己定义的协议。配置器类采用协议并实现它。

Manager类:

@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;} 

我不想要或需要实例化配置类或管理公司上课,或者这是完全必要的?

感谢您的帮助!

回答

0

当你的configalloc的的manager类,它需要说[self.manager setDelegate: self]否则manager类是不知道该config类是它的委托。
这两个类都需要在某处进行实例化,以便使用任何定义的方法或协议。

0

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

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

我认为这会对您有所帮助。

+0

你给了我一个提示来解决它。我所做的是设置配置器类的单例实例,并且在管理器类的init方法中,我将代理设置为配置器类的一个实例。谢谢! – marsalal1014

+0

我编辑了我的代码...检查它。 –