[英]Swift class does not conform to Objective-C protocol with error handling
我有Objective-C
協議
@protocol SomeObjCProtocol
- (BOOL) doSomethingWithError: (NSError **)error;
@end
和Swift
類
class SwiftClass : SomeObjCProtocol
{
func doSomething() throws {
}
}
編譯器給我一個error
類型 'SwiftClass' 不符合協議 'SomeObjCProtocol'"
有什么解決方案可以擺脫這個錯誤嗎? 我正在使用XCode 7 Beta 4
有兩個問題:
func doSomething() throws
映射到 Objective-C 方法- (BOOL) doSomethingAndReturnError: (NSError **)error;
,這與您的協議方法不同。@objc
屬性標記為“Objective-C 兼容”。有兩種可能的解決方案:
方案一:將Objective-C協議方法重命名為
@protocol SomeObjCProtocol
- (BOOL) doSomethingAndReturnError: (NSError **)error;
@end
解決方案2:保持Objective-C協議方法不變,並明確指定Swift方法的Objective-C映射:
@objc(doSomethingWithError:) func doSomething() throws {
// Do stuff
}
遇到該錯誤消息時,問題的一個來源可能是符合 Objetive C 協議的 Swift 類不是從 NSObject 繼承的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.