美文网首页
oc的接口、类、枚举对swift的重命名Ambiguous us

oc的接口、类、枚举对swift的重命名Ambiguous us

作者: coding_Liu | 来源:发表于2023-08-28 13:45 被阅读0次

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

相关文章

  • swift方法

    oc中只有类可以定义方法,swift类/结构体/枚举都能定义方法 swift的类型方法类似oc的类方法 实例方法(...

  • swift3.0- 枚举

    Swift枚举 Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样...

  • 枚举

    Swift枚举:Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样...

  • [OC&Swift] 混编遇到的的坑

    先列一个目录 Swift中使用YYModel OC调用Swift定义的枚举 Swift创建的类,在OC文件的.m中...

  • Swift枚举

    枚举简单认识 Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增...

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • Swift-07:枚举enum

    这里先介绍一下swift枚举与oc枚举的区别 OC: 枚举只能为Int类型swift : 可以在枚举中定义方法 可...

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

  • Swift 枚举

    Swift的枚举在功能上比OC强了很多,在Swift中枚举更倾向于类了 常规用法 成员变量,方法及协议 enum有...

  • Extensions

    swift中扩展适用于类、结构体、枚举和协议 swift中的extension类似于Oc中的categories,...

网友评论

      本文标题:oc的接口、类、枚举对swift的重命名Ambiguous us

      本文链接:https://www.haomeiwen.com/subject/vvpgmdtx.html