当前位置: 代码迷 >> Iphone >> 怎么缩短运算时间?从内存的角度
  详细解决方案

怎么缩短运算时间?从内存的角度

热度:98   发布时间:2016-04-25 06:15:40.0
如何缩短运算时间?从内存的角度
读取 系统通讯录的时候,加载很慢。
代码如下:
/**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;
                }
  相关解决方案