如果我有一些Obj-C代码,而我是从Swift代码中调用的,或者我有一些我从Objective-C中调用的Swift代码。那我怎么看这些方法的签名呢?
我之前已经做过这件事,并且记得有一个Xcode生成的桥接标头,其中包含桥接方法签名。 但是我现在根本找不到。我似乎记得它已经生成到派生数据文件夹中,但是我根本找不到它。
谢谢
答案 0 :(得分:1)
要查看如何将Objective-C接口导入Swift,请选择头文件,然后从“相关项”按钮中选择“生成的接口”:
示例:OClass.h:
NS_ASSUME_NONNULL_BEGIN
@interface OClass : NSObject
- (void)bar:(NSString *)string;
@end
NS_ASSUME_NONNULL_END
生成的接口:
open class OClass : NSObject {
open func bar(_ string: String)
}
要查看Swift类如何映射到Objective-C,请选择一个Swift文件,然后从“相关项”按钮中选择“生成的接口->“ ProjectName.h”:
示例:“ SClass.swift”
class SClass: NSObject {
@objc func foo() {
}
}
“ MyProject-Swift.h”:
// ...
SWIFT_CLASS("_TtC9MyProject6SClass")
@interface SClass : NSObject
- (void)foo;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
// ...
答案 1 :(得分:0)
禁止快速浏览
转到目标-> BuildSettings->(搜索“ Objective-C桥接”)YouProjectBridging.h 通过在“ YouProjectBridging.h”中的#import“ OtherVisible.h”添加其他.h文件。
快速转到目标
在每个要使用快速代码的.h文件中。
导入后,添加一行@class MySwiftClass;"
在导入后的.m文件中添加一行
#import <YourProjectName-Swift.h>
但是,在您希望调用的swift类中,首先应该将访问修饰符设置为
@objc open class MyswiftClass
属性和功能相同
@objc public var button : UIButton!
@objc public override func viewDidLoad()