使用Protocol with Objection获取对象的实例

时间:2013-10-14 09:32:56

标签: ios objective-c

我是目标C的新手,并试图实施异议(依赖注入器)。

但下面不能使用的是我正在使用的代码

My Protocol File 
#import <Foundation/Foundation.h>

@protocol InfoquestProtocolTest <NSObject>
-(void):nothing;
@end

My .h file is below
#import <Foundation/Foundation.h>
# import "InfoquestProtocolTest.h"


@interface InfoquestImplementation : NSObject<InfoquestProtocolTest>



@end

my .m file implementing protocol 


#import "InfoquestImplementation.h"

@implementation InfoquestImplementation
-(void):nothing{}
@end 

Code for module file of objection

#import "InfoquestTestConf.h"
#import <Objection/Objection.h>
#import "InfoquestViewController.h"
#import "InfoquestImplementation.h"
@implementation InfoquestTestConf
-(void)configure
{

    [self bindClass:[InfoquestImplementation class]   toProtocol:@protocol(InfoquestProtocolTest)];
}
@end

Code for getting object from objection

    JSObjectionInjector *injector = [JSObjection createInjector];
    [JSObjection setDefaultInjector:injector];
    InfoquestTestConf *Module = [[InfoquestTestConf alloc] init];
    [injector withModule: Module];
    id<InfoquestProtocolTest> testing2 = [injector getObject:[@protocol(InfoquestProtocolTest)];

但是当我尝试使用[testing2 nothing]进行调用时;我收到错误并且自动填充不会显示任何内容。

由于 高拉夫

3 个答案:

答案 0 :(得分:3)

您遇到语法错误:

你应该替换:

-(void):nothing;

-(void)nothing;

答案 1 :(得分:1)

这是你的语法错误。请改变:

    -(void):nothing;

为:

    -(void)nothing;

答案 2 :(得分:0)

因此您正在使用自定义委托。首先,您必须将委托设置为您正在实现协议方法的类。