다른 사람의 코드를 작업하고 있습니다. 코드 라인을 발견했습니다.이 코드 조각에서 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 메소드 호출을 제거합니다. 그들은 신택스 설탕처럼 보일 수도 있습니다. –