oc的接口、類、枚舉對swift的重命名Ambiguous use of "xxx"

OC中有一些方法、類、枚舉在swift中調(diào)用很不方便, 比如

-(void)addString:(id<string *>)string;
 
-(void)addInt:(id<int>) int;

在swift中的方面名都叫做 add,區(qū)別是參數(shù)不一致。實際上調(diào)用的時候都是 self.add(any)。這時候就會報錯。Ambiguous use of "xxx"

func add (_ string : any)
 
func add (_ int : any)

也就是說,方法名重復(fù)了,實際上在OC中這兩個方法名又是不一致的。那么就需要單獨(dú)來給swift一套專屬的方法名

//沒有參數(shù)
-(void)setStartAction NS_SWIFT_NAME(setStartAction());
 
//含參數(shù)
-(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:));

擴(kuò)展
oc 語法manager 單例 找不到是因為
Xcode 限制了 swift 對 OC 初始化相關(guān)方法的調(diào)用,+ (instancetype)manager;寫法會被忽略。
解決方案:
使用 Xcode 認(rèn)可的關(guān)鍵字 default singleton shared 為前綴聲明方法名。

+ (instancetype)defaultManager;
+ (instancetype)singleton;
+ (instancetype)sharedManager;

重寫下名字即可

詳情 https://blog.csdn.net/qq_36924305/article/details/127448444

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容