使用Swift的异议框架宏

时间:2014-08-04 20:29:23

标签: dependency-injection swift ios8 xcode6

我试图让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提供了很好的支持。

1 个答案:

答案 0 :(得分:0)

您可以使用类变量:

class ListingsViewController: UIViewController
{
    class var initialize: Bool
    {
        JSObjection.registerClass(ListingsViewController.self, scope: JSObjectionScopeNormal)

        return true
    }
}