2011-07-02 5 views
0

이유는카운트 후 NSSet이 쓸모 없습니까?

NSLog(@"mySet count: %@", [mySet count]); 

을 할 수없고, 나중에 NSSet를 사용할 수 있습니까? (만약 내가 그것을 사용하면 응용 프로그램이 "EXC_BAD_ACCESS"와 충돌합니다.

나는 변경 가능/불변, 유지 보수, 복사, 자동 회수 ... 모든 종류의 세트를 시도하고 카운트 메시지 이후에 모두 쓸모 없게되고 충돌합니다. 그리고 예상대로 행동에 포함되지 않습니다, 그리고이 같은 그들을 밖으로 인쇄하는 경우 경우 :!

NSLog(@"mySet: %@", mySet); 

는 괜찮 문제는 카운트 것 같다

누군가가 나에게 이것을 설명 할 수 있습니다.? 나는 이상한 행동에 관해서 수색하고 발견 한 것이 없다.

+0

우리에게 더 많은 코드를 보여줍니다 .... –

+0

문제가 바로 있었고 Dietrich Epp가 그것을 보았습니다! – xfze

답변

3

이 충돌 이유는 [mySet count]이 정수를 반환하고 %@ 형식 지정자가 객체를 예상하기 때문입니다. 로 변경 :

NSLog(@"mySet count: %lu", [mySet count]); 

(이미 C 또는 C++에 익숙하지 않은 경우)이 목표 C의 "개는"중 하나입니다 : 때때로 데이터가 대상이며, 때로는 데이터가 개체가 아닙니다. 이는 C 코드와의 호환성을 위해 필요합니다.

+0

+1 나를 이길. –

+0

ahaha 어리석은, 그것을 완전히 놓쳤다! 나는 붙여 넣기를 베낀 것이 기쁘다 그렇지 않으면 나는 바르게 길을 썼을 텐데 (나는 보통 count doens가 객체 haha를 돌려 준다는 것을 알고있다) – xfze

관련 문제