Objective c 台风1.7.2:XML注入-无法解析类
免责声明:我知道这是Typhone的一个相当老的版本,但我正在尝试向现有的Objective-C代码库添加一个Swift类,我很好奇这是否可行(理论上,我认为应该) 我有以下课程:Objective c 台风1.7.2:XML注入-无法解析类,objective-c,swift,typhoon,Objective C,Swift,Typhoon,免责声明:我知道这是Typhone的一个相当老的版本,但我正在尝试向现有的Objective-C代码库添加一个Swift类,我很好奇这是否可行(理论上,我认为应该) 我有以下课程: import Cocoa public class MyClass: NSObject { } 我想将其用作Objective-C类中的依赖项: @interface DependentClass() @property (nonatomic, strong, readonly) MyClass *myCla
import Cocoa
public class MyClass: NSObject {
}
我想将其用作Objective-C类中的依赖项:
@interface DependentClass()
@property (nonatomic, strong, readonly) MyClass *myClass;
@end
- (instancetype)initWithMyClass:(MyClass *)aClass {
self = [super init];
if (self) {
_myClass = aClass;
}
return self;
}
在XML配置中,我注册了组件和依赖类:
<component class='MyClass' key='myClass' scope='singleton'>
</component>
<component class='DependentClass' key='dependentClass' scope='singleton'>
<initializer selector='initWithMyClass:'>
<argument parameterName='myClass' ref='myClass'/>
</initializer>
</component>
当我启动应用程序时,它在解析myClass时崩溃:
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“类”“MyClass”“无法
决心。”
有没有办法让它发挥作用?据我所知,我唯一要做的就是将
MyClass
制作成NSObject
子类(我的子类,或使用@objc)。这将起作用,但Swift类的名称将自动命名为app/frameworkname.ClassName
您可以在运行时使用
NSStringFromClass(MyClass.self)
测试这一点,但Swift类的名称将自动命名为app/frameworkname.ClassName
您可以在运行时使用
NSStringFromClass(MyClass.self)
进行测试,这在理论上是可行的,但Swift类的名称可能会自动命名为app/frameworkname.ClassName。我忘记了确切的fomat,但您可以在运行时使用NSStringFromClass(MyClass.self)进行测试?哇,您是对的,我完全忘记了模块名称空间。我已经将名称空间添加到XML中,现在它可以工作了。谢谢如果你写它作为一个答案,我可以标记为接受!根据要求添加了(非常简短的)答案:)这在理论上是可行的,但Swift类的名称可能会自动命名为app/frameworkname.ClassName。我忘记了确切的fomat,但您可以在运行时使用NSStringFromClass(MyClass.self)进行测试?哇,您是对的,我完全忘记了模块名称空间。我已经将名称空间添加到XML中,现在它可以工作了。谢谢如果你写它作为一个答案,我可以标记为接受!根据要求添加了(非常简短的)答案:)