구현

2013-12-19 1 views
0
내 목표 - C 클래스의 countByEnumeratingWithState 방법을 구현하기 위해 노력하고

(예를 들어이 방법 MyClass 나는구현

MyOtherClass *cl = [[MyOtherClass alloc] init]; 
buffer[count++] = cl; 

이유를 할 Fastenumeration 그 때문이다 객체는 '다른 곳'저장되는 응용 프로그램에서이 방법을 사용하는 경우 그러나,이 충돌합니다.

for (const MyOtherClass *cl in myClassObj){ 
    NSLog(@"obj: %@", cl.description); 
} 

그 이유는 ARC 내 MyOtherClass 객체를 멀리 던진다 가능성이 높습니다 버퍼가 'unretained'이기 때문에 countByEnumeratingWithState에서. MyOtherClass 객체가 '보유'되어 있는지 어떻게 확인할 수 있습니까?

더 많은 관련 정보 :

  • 스레드 # 4 : TID = 0x5ca941, 0x0000000101a4cf8b libobjc.A.dylib objc_msgSend + 11, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) frame #0: 0x0000000101a4cf8b libobjc.A.dylib objc_msgSend +
+0

stacktrace를 게시하십시오. – trojanfoe

+0

버퍼 선언을 보겠습니다. –

답변

0

(11)는 왜 CONST 키워드를 사용합니까? Const는 초기화를 위해서 객체를 할당하게하고 변경 후에는 예외를 던지게합니다. 시도해보십시오 :

for (MyOtherClass *cl in myClassObj){ 
    NSLog(@"obj: %@", cl.description); 
} 
+0

제안 해 주셔서 감사합니다.하지만 여전히 동일한 문제가 있습니다. –

+0

@PaulPraet 스택 상단에 볼 수있는 스택 추적 및 사용자 지정 메서드를 게시 할 수 있습니다. – Greg