簡體   English   中英

Swift 2:@objc協議和枚舉數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM