我正在将大型代码库迁移到Swift 3.0。我正在生成错误"Cannot convert value of type 'Array<MultivalueEntry<Date>>?' to type 'AnyObject' in coercion.
ios - Swift 3.0错误“无法转换类型的值”-LMLPHP

我什至尝试在下面将newValue设置为'Array<MultivalueEntry<Date>>?',但仍会产生错误:
ios - Swift 3.0错误“无法转换类型的值”-LMLPHP

最后尝试将newValue设置为'Array<MultivalueEntry<NSObject>>?'失败:
ios - Swift 3.0错误“无法转换类型的值”-LMLPHP

我究竟做错了什么?

UPDATE MultiValueEntry:

public struct MultivalueEntry<T> {
    public var value : T
    public var label : String?
    public let id : Int

    public init(value: T, label: String?, id: Int) {
        self.value = value
        self.label = label
        self.id = id
    }
}

最佳答案

问题是泛型数组无法转换为NSArray或CFArray,因为Objective-C对泛型一无所知。好吧,MultivalueEntry<Date>是通用的。

关于ios - Swift 3.0错误“无法转换类型的值”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39838662/

10-11 17:23