OC中有一些方法、类、枚举在swift中调用很不方便, 比如
-(void)addString:(id<string *>)string;
-(void)addInt:(id<int>) int;
在swift中的方面名都叫做 add,区别是参数不一致。实际上调用的时候都是 self.add(any)。这时候就会报错。Ambiguous use of "xxx"
func add (_ string : any)
func add (_ int : any)
也就是说,方法名重复了,实际上在OC中这两个方法名又是不一致的。那么就需要单独来给swift一套专属的方法名
//没有参数
-(void)setStartAction NS_SWIFT_NAME(setStartAction());
//含参数
-(void)setStartAction:(int)action end:(int)end NS_SWIFT_NAME(setStartAction(action:end:));
//含返回值,不需要注明返回值
-(BOOL)setStartAction:(int)action end:(int)end NS_SWIFT_NAME(setStartAction(action:end:));
扩展
oc 语法manager 单例 找不到是因为
Xcode 限制了 swift 对 OC 初始化相关方法的调用,+ (instancetype)manager;写法会被忽略。
解决方案:
使用 Xcode 认可的关键字 default singleton shared 为前缀声明方法名。
+ (instancetype)defaultManager;
+ (instancetype)singleton;
+ (instancetype)sharedManager;
重写下名字即可
详情 https://blog.csdn.net/qq_36924305/article/details/127448444