来自依赖项的NSClassFromString

时间:2016-06-01 17:11:29

标签: swift reflection objective-c-runtime

我遇到这个问题,让反射从外部框架作为依赖项工作。

所以我想说我有两个项目,一个是示例应用程序项目

SampleApp.xcodeproj
@obj protocol Extension : NSObjectProtocol {
    //..Some definitions
}

另一个框架项目将依赖示例应用程序,并且是示例应用程序项目的子模块。

Framework.xcodeproj
class SampleClass : NSObject, Extension {
   //some definitions
}

在此框架中,Extension.swift文件(其中定义了扩展协议)包含在构建中作为参考

现在这是此代码的问题

if let customExtension = NSClassFromString("Framework.SampleClass") as? NSObject.Type {
    let extensionInstance = customExtension.init()
    if extensionInstance is Extension { //The problem here, it returned false at this point
        print("It is an Extension")
    } else {
        print("It is not an Extension")
    }
}

我注意到Framework项目中定义的Extension协议被定义为Framework.Extension而不是SampleApp.Extension。我如何将SampleClass类定义为SampleApp.Extension而不是Framework.Extension?

0 个答案:

没有答案