如何将所有联系人从iphone(模拟器)传递到表?

时间:2012-07-11 15:47:32

标签: ios abaddressbook

我是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)

1 个答案:

答案 0 :(得分:7)

您需要将项目与AddressBook框架链接。在Xcode中,导航到项目设置(文件浏览器中的顶级项目),转到“Build Phases”选项卡,展开“Link Binary With Libraries”部分,单击“+”图标,选择“{{ 1}},“然后单击”确定“。这应该可以解决你的问题。

您看到的错误消息告诉您,在编译应用时,它无法找到列出的符号。这些符号在您导入的AddressBook标头中声明,但它们在框架中实现,这就是您需要链接到它的原因。链接过程填写这些符号。