0
앱을 정확히 내가 주소록에서 모든 전화 번호를 읽고있다응용 프로그램은 아이폰 4에 충돌하지만 iPhone3gs
NSString *phone, *phone_personal, *phone_business;
for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
mobileLabel = (NSString*)ABMultiValueCopyLabelAtIndex(phones, i);
if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMainLabel]){
phone = [(NSString*)ABMultiValueCopyValueAtIndex(phones, i) retain];
}
else{
[email protected]"(null)";
}
if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel]){
phone_personal = [(NSString*)ABMultiValueCopyValueAtIndex(phones, i)retain];
}
else{
[email protected]"(null)";
}
if ([mobileLabel isEqualToString:(NSString*)kABPersonPhoneIPhoneLabel]){
phone_business = [(NSString*)ABMultiValueCopyValueAtIndex(phones, i)retain];
}
else{
[email protected]"(null)";
}
[mobileLabel release];
}
CFRelease(phones);
우선이다 충돌의 코드에 잘 작동하고 배열 에 전화 번호를 추가합니다 숫자 배열.
if (!([phone isEqualToString:@"(null)"]|| phone == nil || phone.length ==0)){
[arrayofnumbersandmeamsil addObject:phone];
}
if (!([phone_personal isEqualToString:@"(null)"]|| phone_personal == nil || phone_personal.length ==0)) {
[arrayofnumbersandmeamsil addObject:phone_personal];
}
if (!([phone_business isEqualToString:@"(null)"]|| phone_business == nil || phone_business.length ==0)) {
[arrayofnumbersandmeamsil addObject:phone_business];
}
내 문제는 내 애플 아이폰 4에 충돌 및 아이폰에서 잘 작동되고 모두가 아이폰 OS 6.1.3이 3GS. 나는이 문제가 phone_personal, phone_business의 초기화와 관련이 있다는 것을 알고있다.
메모리 릴리스와 관련된 문제입니다. 제가
CFRelease(phones);
를 사용하여 전화를
[mobileLabel release];
를 사용 mobileLabel을 풀어 놓을 때 그럼 충돌 및 해제없이 메모리 누출을 나타낸다. 어떻게 처리할까요?
if(phones){
CFRelease(phones);
}
으로
CFRelease(phones);
를 교체