アドレス帳フレームワークを大いに活用するアプリケーションで作業する。アドレス帳のデータと対話する多くのView Controllerがあり、すべて正常に動作します。 1つを除いて、それは私を殺している。アドレス帳propertyID - 不明なタイプですか?
私は、次のような方法では、アドレス帳へのアクセスをラップするクラスを持っている:
- (NSDictionary*)labelsToValues:(ABPropertyID)propertyID {
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef aRecord = ABAddressBookGetPersonWithRecordID(addressBook, [self recordIdFromAddressBookId]);
NSMutableDictionary *entries = [NSMutableDictionary dictionary];
ABMultiValueRef multiValueProperty = ABRecordCopyValue(aRecord, propertyID);
// do some other stuff
そして私は、このような場所でそれを呼び出す:
- (NSDictionary*)emailProperties {
return [self labelsToValues:kABPersonEmailProperty];
}
そして、それは働きます!もちろん、私はAddress BookフレームワークのConstantという引数でメッセージを送信しています。だから、いつもうまくいくはずです!
しかし、そうではありません。この特定のemailProperties:メッセージは、私がいくつかの場所で呼び出しているメッセージです...時には動作しますが、ときどき動作しないことがあります。何かがうまくいかないときは、私はデバッガを介してそれを入れ、私はこのようなものを得る:
どのように可能です!さらに、問題のView Controllerを「プライム」して、すべてが期待通りに動作する他のView Controllerを表示し、問題のView Controllerに戻ると、すべて正常に動作します。だから、私はこれが何らかのリンクエラーであると推測していますが、トラブルシューティングから始める方法もわかりません。
[アドレス帳の定数がゼロと評価される]の重複が可能です(http://stackoverflow.com/questions/1235131/address-book-constants-evaluating-as-zero) – bpapa