[英]Swift 2: @objc protocol and enum array
我有一個枚舉定義如下:
@objc enum MyEnum: Int {
case Case1, Case2
}
和以下協議:
@objc protocol MyProtocol {
func myFunc(myData: [MyEnum])
}
現在,該協議引發以下錯誤:
Method cannot be a member of a @objc protocol because the type of the parameter cannot be represented in Objective-C
我不明白為什么會這樣。 工作原理:
func MyFunc(myData: MyEnum)
但是會引發數組錯誤?
我想傳遞一個Int數組,然后將其轉換回枚舉,但我不太喜歡。 有更好的解決方案嗎?
我不確定,但是它不起作用,因為Objective-C數組應該只包含指針,而Int
的枚舉不包含指針。
您可以嘗試這樣的事情
@objc enum MyEnum: Int {
case Case1, Case2
var numberValue : NSNumber {
get {
return NSNumber(
integer: self.rawValue
)
}
}
}
@objc protocol MyProtocol {
func myFunc(myData: [NSNumber])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.