2011-04-18 6 views
1

모든 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]; 

} 

** 여기가 내가 첫 번째 이름을 저장; 당신이 contactFirstLast을 만들 때 당신은 그것을 소유

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

을하지 않고 당신은 그것을 해제됩니다

+0

충돌 유형은 무엇입니까? –

+0

앱이 종료됩니다. – Shahriar

+0

시뮬레이터는 다른 앱 아이콘 (집의 가로 막 대형)이있는 앱 아이콘을 보여줍니다. – Shahriar

답변

0

코드를 찾고 있습니다. 이것이 응용 프로그램이 충돌하는 이유입니다.

+0

굉장 ....이 작품. 너 정말 고마워. 바보 같은 실수 였어. – Shahriar