29,049
社区成员




/**write datas*/
- (void)generatePersonInfosFromAddressBook:(ABAddressBookRef)addressBook {
CFArrayRef persons = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nCounts = ABAddressBookGetPersonCount(addressBook);
//database
ILSCMPersistenceManage *pm = [ILSCMPersistenceManage sharedInstance];
for (int i = 0; i<nCounts; i++) {
ABRecordRef recordOfPerson = CFArrayGetValueAtIndex(persons, i);
ABContact *contact = [ABContact contactWithRecord:recordOfPerson];
ILSCMPersonInfo *personInfo = [ILSCMPersonInfo ABcontactCoventToPersonInfo:contact];
if (personInfo.recordID) {
NSString *regex = [NSString stringWithFormat:@"SELF.recordID == %d",[personInfo.recordID intValue]];
NSArray *result = [pm fetchEntity:kEntityPersonInfo criteria:regex variables:nil sortBy:nil ascending:YES];
if ([result count]!=0) {
NSManagedObject *obj = [result objectAtIndex:0];
NSDate *coreDataModify = [obj valueForKey:@"modificationDate"];
NSDate *constactModify = personInfo.modificationDate;
switch ([coreDataModify compare:constactModify]) {
case NSOrderedAscending:
{ //update
personInfo.objectId =[[obj.objectID copy] autorelease];
[pm savePersonInfo:personInfo];
break;
}
default:
break;
}
}else {
// [pm savePersonInfo:personInfo];
}
}else {
NSLog(@"refRecordId is nul");
}
//commit
// [pm commitEventWithEachCount:i+1];
}
//保存不足30的余数
[pm commitEventWithEachCount:0];
//release persons
CFAutorelease(persons);
}