2011-12-27 5 views
0

ios-5에서 프로젝트를 개발하기 시작했습니다. 응용 프로그램에서 데이터베이스를 만들었습니다. 93,55,68,95,45와 같은 값을 포함하는 appDelegate에서 bdgDBArr을 만듭니다. badge_id = @ "93,55,68,95,45"와 같은 문자열을 만들고 싶습니다. 여기에 appDelegate.sb가 있습니다. NSString 유형과 SB1이 내 코드NSMutableString을 공개하지 않습니다.

NSMutableString *sb1 = [[NSMutableString alloc] init]; 

if (![appDelegate.bdgDBArr count]==0) { 
    for (int i=0; i < [appDelegate.bdgDBArr count]; i++) { 
     if (!i==0) { 
      [sb1 appendString:@","]; 
     } 
     [sb1 appendString:[[appDelegate.bdgDBArr objectAtIndex:i] valueForKey:@"key1"]]; 
    } 
} 
else { 
    [sb1 appendString:@""]; 
} 

appDelegate.sb = sb1; 
NSLog(@"appDelegate.sb showSB===%@",appDelegate.sb); 
[sb1 release]; //error wait_fences: failed to receive reply: 10004003 
sb1 = nil; 
이 코드는 완벽하게 작동하고 출력 93,55,68,45 를 얻을 수 있지만, 동시에 내가 NSLog에서이 오류를 받고 있습니다

입니다 NSMutableString 유형

입니다

wait_fences: failed to receive reply: 10004003 

아이디어가 있으십니까?

+0

ARC를 켰습니까?이 경우 개체를 해제 할 필요가 없습니다. – rckoenes

+1

@rckoenes 런타임 오류가 컴파일 오류가 아닌 것처럼 보입니다. 반면 ARC는 컴파일 할 때 수행됩니다. – 0x8badf00d

+0

@ 0x8badf00d 당신 말이 맞습니다. – rckoenes

답변

0

시도해보기 : release 대신 autorelease를 사용하십시오. 뭔가 바뀌어?

은 @syntetise setter/getter가있는 응용 프로그램 대리인에서 사용되는 appDelegate.sb 속성이거나 setter 용 코드를 사용 했습니까? 이 경우 코드를 게시하십시오.

2

나는 당신의 문제를 도울 수는 없지만 코드를 줄이면서 한 줄로 줄일 수 있습니다 : appDelegate.sb = [appDelegate.bdgDBArr componentsJoinedByString:@","]; 이것은 표현력이 풍부하고 옳은 일을합니다.

우리가있는 동안 :
Objective-C는 산문처럼 읽을 수있는 코드를 작성하는 것을 용이하게합니다. sb 또는 bdgDBArr과 같은 멤버/변수 이름을 사용하여이를 깨뜨리지 마십시오.

오, 불평등을 테스트 할 연산자가 있습니다. !=은 동등성 테스트의 결과를 무효화하는 대신 해당 연산자를 사용합니다. 미래의 자아와 코드를 보는 모든 사람은 감사 할 것입니다.

+0

빠른 답장을 보내 주셔서 감사합니다 – akshata

+0

방금 ​​내 코드를 수정했습니다. – akshata

+0

appDelegate.sb = [[appDelegate.bdgDBArr valueForKey : @ "key1"] componentsJoinedByString : @ ","]; – akshata

관련 문제