我是新來的目標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沒什麼]調用;我收到錯誤,自動完成不會顯示任何內容。
感謝 拉夫
請解釋一點,我在自定義委託中沒有發言權,我知道委託人,因爲他們在tableviewcontroller中實現。 – user1394622
自定義委託沒有任何意義,只是您正在使用協議中的define方法編寫自己的委託。而且當你在你的協議中定義方法時,你必須在你想要使用的另一個類中實現相同的功能 –
http://stackoverflow.com/questions/645449/how-to-use-custom-delegates-in- objective-c請點擊此鏈接 –