我试图让Objection Framework与Swift(XCode 6.4)一起工作。
除了注册/注入对象所需的宏之外,一切都很好。 objection_register
我按照“Bridging Cocoalumerjack with Swift”的方法来处理使用Swift的宏,但是在Use of undeclared identifier 'initialize'
中实现objectionRegister
函数时,XCode总是抱怨:ObjectionSwift.m
。由于我不熟悉objective-c,因此在查看Objection.h初始化方法并试图弄清楚什么是错误时卡住了
谢谢你的帮助!
ObjectionSwift.h
#import <Foundation/Foundation.h>
@interface ObjectionSwift : NSObject
+ (void) objectionRegister(NSString *) name;
#endif
ObjectionSwift.m
#import "ObjectionSwift.h"
#import "Objection.h"
@implementation ObjectionSwift
+ (void) objectionRegister:(NSString *) name {
objection_register_singleton(name)
}
@end
更新 我改用Typhoon作为DI Framework,它为Swift提供了很好的支持。
答案 0 :(得分:0)
您可以使用类变量:
class ListingsViewController: UIViewController
{
class var initialize: Bool
{
JSObjection.registerClass(ListingsViewController.self, scope: JSObjectionScopeNormal)
return true
}
}