我希望将所有iPhone通讯簿联系人复制到一个数组中,然后将此数组写入文件。我已经编写了以下代码并将其连接到一个按钮,但是当我点击这个按钮时,我的应用程序崩溃了。
请帮我解决这个问题。
我的方法是:
-(NSString *)pathOfFile{
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory=[paths objectAtIndex:0];
return [documentsDirectory stringByAppendingFormat:@"contacts.plist"];
}
-(IBAction)createAddressBookCopy{
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
NSMutableArray *masterList = [[NSMutableArray alloc] init];
for (int i = 0; i < nPeople; i++) {
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i);
CFStringRef fName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
CFStringRef lName = ABRecordCopyValue(ref, kABPersonLastNameProperty);
NSString *contactFirstLast = [NSString stringWithFormat: @"%@", (NSString *)fName];
CFRelease(fName);
CFRelease(lName);
[masterList addObject:contactFirstLast];
[contactFirstLast release];
}
//self.list = masterList;
[masterList writeToFile:[self pathOfFile] atomically:YES];
[masterList release];
} **这里我只保存了名字;
发布于 2011-04-19 04:15:47
看看你的代码:
NSString *contactFirstLast = [NSString stringWithFormat: @"%@", (NSString *)fName];
// ....
contactFirstLast release]; // this is wrong当您创建contactFirstLast时,您并不拥有它,您正在发布它。这就是你的应用程序崩溃的原因。
https://stackoverflow.com/questions/5708060
复制相似问题