我正在将我的Swift
项目与已经存在的Objective-C
代码合并。我需要从目标C应用程序委托中调用Swift类的一些重要方法。我尝试了net中给出的所有方法,但是没有用。有人可以帮我吗?
答案 0 :(得分:0)
是的,有可能,但有一些限制。
您只能使用从NSObject继承的具有公共属性并带有@objc标记的类。在Objective-C代码中,应导入由编译器生成的“ ProductModuleName-Swift.h”文件。
以下是Swift类的示例:
import Foundation
@objc public class ExampleClass: NSObject {
@objc public var someInstanceProperty = "Property"
@objc public func someFunction() {
print("Some function")
}
}
请注意,此类从NSObject继承并具有@objc和public属性。在command + B之后,您可以通过Assistance编辑器查看生成的网桥头:
然后,您应该在Objective-C类中导入桥头。
#import "ProductModuleName-Swift.h"
然后您可以像其他任何Objective-C类一样在Objective-C代码处使用Swift类:
__auto_type const someClass = [ExampleClass new];
[someClass someFunction];
NSLog(@"%@", someClass.someInstanceProperty);
以下是来自Apple的其他信息: Importing Swift into Objective-C