"Qref"という名前のアドレス帳にカスタムプロパティを作成しました。私はそれが[ABPerson properties]
を使用していることを確認することができます、そして、それは私が書いたテストアプリのために常にそこにあります。AddressBookのカスタムプロパティに設定した値を保持するにはどうしたらいいですか?
ところで、[ABPerson removeProperties]
は実装されていないため、カスタムプロパティを削除することはできません。名前が間違っている名前を削除する必要があるので、それが今のところあるかどうかを教えてください。
このコードでプロパティ値を設定しました。私は離れてPeoplePicker者から移動し、正しく値を見つけるために返すことができます。この時点で、
ABPerson *p = <person chosen from a PeoplePicker>;
NSError *e;
if (![p setValue: aString forProperty:@"Qref" error:&e]) {
[NSAlert alertWithError:e]runModal;
}
(私はまだ警告を見ていないが、時にはコンソールでエラーメッセージのヒープを取得したことがない。) セット。 私は[[ABAddressBook sharedAddressBook] hasUnsavedChanges]
をチェックすると結果がNO、そうはっきりと変化するカスタムプロパティの値が変更としてカウントされませんので、私はその後、
[[ABAddressBook sharedAddressBook] save];
を実行し、(より良い方法を提案してください)ダミー人を挿入することで、保存を強制されます
ダミーの人物は、実行中の場合はすぐにAddressBookに表示されるので、何かが正しいです。しかし、私は私のアプリを閉じて再び実行すると、私は設定した値がなくなったことがわかります。 (MacOSX-Lion)
あなたは命を救っています! ABPerson、ABPersonView、およびMac OS X上のABAddressBookには、まだウェブ上に文書化されていない隠された問題点がたくさんあります。私は誰もこの新しい10.7クラスを使っていないと思っていました。 – Byron
私はLionで利用可能な新しいアドレス帳のクラスを指しています。 – Byron