2016-10-03 14 views
0

大きなコードベースをSwift 3.0に移行しています。 enter image description hereSwift 3.0エラー「タイプの値を変換できません」

そして最後には成功しません'Array<MultivalueEntry<NSObject>>?'にnewValueに設定しようとした:私は、私も下の'Array<MultivalueEntry<Date>>?'にnewValueに設定しようとしました、そしてそれはまだエラーが発生したエラーに"Cannot convert value of type 'Array<MultivalueEntry<Date>>?' to type 'AnyObject' in coercion.

enter image description here

を生成しています: 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

問題はObjective-Cのは、ジェネリック医薬品の何も知らないので、ジェネリック医薬品の配列は、NSArrayのかCFArrayに変換することができないことです。まあ、MultivalueEntry<Date>は一般的なものです。

+0

Gotcha、thanks Matt。これをSwift 3.0にアップデートしたい場合は、どうすれば修正できますか? –

+0

あなたはMultivalueEntryが何であるかを説明していないので、わかりません。なぜあなたはそれを使っていますか?これが連絡先/アドレス帳に関するものであれば、アドレス帳フレームワークを放棄し、連絡先フレームワークを使用する必要があります。 – matt

+0

私はSwiftAddressBookを使用していますが、私のプロジェクトをSwift 3.0にアップデートしようとしています。残念ながら、SwiftAddressBookはSwift 3.0ではサポートされていないため、手動で更新しています。私はiOS9のSwiftAddressBookで多くの成功を収めました。ユーザーの連絡先から情報を取得するために使用しています。私はそれに固執したいですが、私がそれを使用することができない場合、私は連絡先フレームワークを試してみます。 –

関連する問題