[英]Objective-C method signatures are the same after Swift conversion
我在objective-c庫中有兩個方法,在轉換為Swift之后,似乎有相同的方法簽名。 它們在Objective-C中如下:
- (void)doSomething:(UIViewController *)viewController __attribute__((deprecated));
- (BOOL)doSomething:(UIViewController *)viewController error:(NSError **)error;
根據我在Objective-C中使用NSErrors + BOOL返回值的Swift轉換方法的內容,這些方法將最終得到以下Swift方法簽名:
func doSomething(viewController: UIViewController)
func doSomething(viewController: UIViewController) throws
由於在Objective-C中實際上不推薦第一個調用,是否有辦法強制對此方法的調用使用第二個簽名(確保我可以利用拋出的錯誤)?
我試圖以下列方式調用該方法:
do {
try myObjectInstance.doSomething(self)
} catch let error as NSError {
print(error)
}
這種方法似乎默認為第一個聲明,它給了我一個警告:a)該方法已被棄用,b)沒有什么可以捕獲的,因為沒有拋出錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.