我正在處理別人的代碼。我碰到一行代碼在此代碼段中使用NSThread
[NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];
我有兩個問題要問。
- 它只是調用一個方法。爲什麼在這裏使用NSThread?
- 運行代碼時,在某些情況下,此方法不會被調用。當我在方法內部放置一個斷點時,它總是被調用。但是,如果我刪除斷點,在某些情況下該方法不會被調用。這是NSThread的問題嗎?
這也是一個很好的建議,儘管現在你應該使用@autoreleasepool {...}來代替。 –
如果你使用ARC'@ autoreleasepool'塊是要走的路,否則任何一種方式都可以:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/Reference /Reference.html。 '@ autorelease'塊更有效(代碼)。 – basvk
@autoreleasepool塊實際上也是更高性能 - 它們消除了創建附加對象和幾個Objective-C方法調用。它們不僅僅是語法糖,因爲它們可能看起來像。 –