2015-10-23 10 views
7

でなければなりません。今度は、 "オブジェクトタイプの保持または強い属性を持つプロパティ"と呼ばれます。エラーは-Swift.hファイルにあります。どのような変化が起こったのでしょうか?のXcode 7.1:私は、迅速なファイルで、この変数を持っているとプロパティは保持または強力な属性は、オブジェクト型

+1

を使用する必要がありますと思いますか? ABAddressBookは構造体です。いずれかのを取り除く!それをinitで割り当てるか?それが設定されていない可能性があります。 –

+0

これは時々ゼロにすることができます。私はそれをaに変更した?それでも同じエラーが発生します。そして、それをABAddressBookRefに変更しても役に立ちません。 – RyJ

+0

これは、私がCNContactStoreへの移行を強制するためのAppleの微妙な方法かもしれません。 – RyJ

答えて

3

このエラーは、SwiftクラスがいくつかのAdressBookプロパティを宣言し、このクラスがSwift/ObjCの混合プロジェクトの一部である場合に発生します。 Xcodeはスウィフトブリッジヘッダーを生成します。このプロパティは(非原子的、強い)オブジェクトにのみ適用され、構造には適用されません。

Objective-CクラスからABRecordRefをSwiftクラスに渡す必要があるとき、同様の問題が発生しました.XcodeはSwiftのABRecordRefプロパティが嫌いでした。だから私は、それがブリッジングヘッダーに輸出されないように、そのプロパティがプライベートなってしまった、とABRecordRefを受け取るためにスウィフトクラスの新しいメソッドを追加しました:

class: PersonDetails { 

     private var selectedPerson: ABRecorfRef? 

     func setPerson(person: ABRecordRef) { 
      selectedPerson = person 
     } 
    } 

をそして、あなたは

[personDetails setPerson: person]; 
を呼び出すことができますObjective-Cクラスの

ABAddressBookが

@available(iOS, introduced=2.0, deprecated=9.0, message="use CNContactStore") 
public typealias ABAddressBookRef = ABAddressBook 

を推奨されていません

0

ので、私はあなたがあなたの代わりにABAddressBookRefを保存しないでくださいCNContactStore

関連する問題