2016-10-03 9 views
0

큰 코드베이스를 Swift 3.0으로 마이그레이션 중입니다. 성공하지 'Array<MultivalueEntry<NSObject>>?'에 NEWVALUE 설정 마지막 시도 enter image description hereSwift 3.0 오류 "형식 값을 변환 할 수 없습니다"

그리고 : 나는 "Cannot convert value of type 'Array<MultivalueEntry<Date>>?' to type 'AnyObject' in coercion.

enter image description here

나는 심지어 아래 'Array<MultivalueEntry<Date>>?'에 NEWVALUE을 설정하려고했습니다 오류를 생성하고, 그것은 여전히 ​​오류를 생성한다 : enter image description here

내가 뭘 잘못하고 있니?

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

답변

1

문제는 오브젝티브 C는 제네릭 아무것도 알고 있기 때문에 범용의 배열, 또는 NSArray를 CFArray로 변환 할 수 있다는 것이다. 음, MultivalueEntry<Date>은 일반적인 것입니다.

+0

Gotcha, 감사합니다. Matt. 이것을 Swift 3.0으로 업데이트하고 싶다면 어떻게 수정해야합니까? –

+0

MultivalueEntry가 무엇인지 설명하지 않았기 때문에 나는 모른다. 너 왜 그걸 사용하는거야? 연락처/주소록에 관한 것이라면 주소록 프레임 워크를 포기하고 주소록 프레임 워크를 사용해야합니다. – matt

+0

저는 SwiftAddressBook을 사용하고 있으며, Im 프로젝트를 Swift 3.0으로 업데이트하려고합니다. 안타깝게도 SwiftAddressBook은 Swift 3.0에서 지원되지 않으므로 수동으로 업데이트하고 있습니다. iOS9에서 SwiftAddressBook으로 많은 성공을 거두었습니다. 사용자 연락처에서 정보를 수집하는 데 사용하고 있습니다. 나는 그것에 충실하고 싶지만, 그것을 사용할 수 없다면 나는 Contacts Framework를 시도 할 것이다. –

관련 문제