我是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)
答案 0 :(得分:7)
您需要将项目与AddressBook框架链接。在Xcode中,导航到项目设置(文件浏览器中的顶级项目),转到“Build Phases”选项卡,展开“Link Binary With Libraries”部分,单击“+”图标,选择“{{ 1}},“然后单击”确定“。这应该可以解决你的问题。
您看到的错误消息告诉您,在编译应用时,它无法找到列出的符号。这些符号在您导入的AddressBook标头中声明,但它们在框架中实现,这就是您需要链接到它的原因。链接过程填写这些符号。