2013-12-19 42 views
0

我想實現的countByEnumeratingWithState方法在我的Objective-C類(比如MyClass 在這種方法我做一個Fastenumeration實施

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

我之所以要在飛行中分配對象是因爲這些對象存儲「在別處」 然而,使用從應用這種方法時,它會崩潰。

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

這樣做的原因是最有可能的是ARC扔掉我的MyOtherClass對象在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 + 11
+0

請發佈stacktrace。 – trojanfoe

+0

讓我們看看緩衝區聲明。 –

回答

0

爲什麼你使用const關鍵字? Const讓你爲初始化分配對象,然後在你想嘗試改變它時拋出異常。試試看:

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

感謝您的建議,但仍然是同樣的問題。 –

+0

@PaulPraet你可以發佈stacktrace和你可以在堆棧頂部看到的自定義方法。 – Greg