2

私はIOSの初心者で、すべての連絡先をiphone(シミュレーター)からテーブルに渡そうとしています。いくつかのチュートリアルに従いましたが、エラーが発生します。

それを手伝ってくれませんか。

私はそれを試しました:

#import <AddressBookUI/AddressBookUI.h>
.
.
.
ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

for ( int i = 0; i < nPeople; i++ )
{
    ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
     NSLog(@"%@",ref);
}

このエラーが発生します:

Undefined symbols for architecture i386:
  "_ABAddressBookCreate", referenced from:
      -[younifyTableViewController viewDidLoad] in younifyTableViewController.o
  "_ABAddressBookCopyArrayOfAllPeople", referenced from:
      -[younifyTableViewController viewDidLoad] in younifyTableViewController.o
  "_ABAddressBookGetPersonCount", referenced from:
      -[younifyTableViewController viewDidLoad] in younifyTableViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

1 に答える 1

7

プロジェクトをAddressBookフレームワークにリンクする必要があります。Xcodeで、プロジェクト設定(ファイルブラウザの最上位項目)に移動し、[ビルドフェーズ]タブに移動し、[バイナリとライブラリのリンク]セクションを展開して、[+]アイコンをクリックし、[<コード]を選択します。 > AddressBook.framework」をクリックし、[OK]をクリックします。これで問題が解決するはずです。

表示されるエラーメッセージは、アプリをコンパイルするときに、リストされている記号が見つからないことを示しています。これらのシンボルは、インポートしたAddressBookヘッダーで宣言されていますが、フレームワークに実装されているため、リンクする必要があります。リンクプロセスはこれらの記号を埋めます。

于 2012-07-11T16:14:30.783 に答える