gpt4 book ai didi

iphone - 创建地址簿副本

转载 作者:行者123 更新时间:2023-11-28 17:46:28 25 4
gpt4 key购买 nike

我想把所有的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];

}

**这里我只保存了名字;

最佳答案

查看您的代码:

NSString *contactFirstLast = [NSString stringWithFormat: @"%@", (NSString *)fName];
// ....
contactFirstLast release]; // this is wrong

当您创建 contactFirstLast 时,您并不拥有它,而是在释放它。这就是您的应用程序崩溃的原因。

关于iphone - 创建地址簿副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com