2

主な問題:

私は、3 つのタブ (場所、専門分野、名前別) に人々のディレクトリを含むアプリケーションを作成しました。ユーザーはアプリケーションで連絡先を選択して電話をかけることができます。ただし、通話を受信した電話には名前ではなく番号のみが表示されます(連絡先はアドレス帳にはなく、アプリのsqlite db内にあるため)。

回避策:

この問題を回避する方法が他にあるかどうかはよくわかりませんが、発信側と受信側の両方の電話にアプリケーションがインストールされているため、私の回避策は sqlite3 データベース (またはデータベースの配列) から連絡先をインポートすることでした。引き込まれている) iPhoneのアドレス帳に。人が電話をかけると、iPhoneのアドレス帳に一度、番号の代わりに名前が表示されます。

問題:

アドレス帳に 1 人の連絡先を追加するためのドキュメントを見つけることができますが、複数の人を追加することはできません (データベースには現在約 150 の連絡先が保持されています)。ループを実行しようと考えましたが、どこから始めればよいか本当にわかりません..誰かが私を正しい方法に導いてくれますか:)

また、アプリケーションが一時停止またはフリーズしないように、バックグラウンドでこれを行う最善の方法は何でしょうか。

前もって感謝します!

4

1 に答える 1

0

これを試して....

nameArray = [[NSMutableArray alloc]init];

for (int index = 0 ; index< ABAddressBookGetPersonCount(addressBookObj); index++)
{
    recordRefObj = CFArrayGetValueAtIndex(arrayRefObj, index);
    NSString *nameStr = (__bridge NSString*) ABRecordCopyValue(recordRefObj, kABPersonFirstNameProperty);
    [nameArray addObject:nameStr];
}
于 2012-12-14T11:30:49.100 に答える