gpt4 book ai didi

ios - swift 2 : @objc protocol and enum array

转载 作者:行者123 更新时间:2023-11-30 13:34:50 24 4
gpt4 key购买 nike

我有一个枚举定义如下:

@objc enum MyEnum: Int {
case Case1, Case2
}

以及以下协议(protocol):

@objc protocol MyProtocol {
func myFunc(myData: [MyEnum])
}

现在协议(protocol)抛出以下错误:

 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])
}

关于ios - swift 2 : @objc protocol and enum array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com