0
NSBlockOperation *blockOperation = ^{NSLog(@"This is an NSBlockOperation");};
NSOperationQueue *ownQueue = [[NSOperationQueue alloc] init];
[ownQueue setMaxConcurrentOperationCount:2];
[ownQueue addOperation:blockOperation];
저는이 간단한 코드가 EXC_BAD_ACCESS로 끝나지만 NSBlockOperation을 시험해보고 있습니다. 고급의간단한 NSOperationQueue는 EXC_BAD_ACCESS로 끝납니다
감사를 잠 그려면 : 코드는 @autorelease
libsystem_c.dylib`OSAtomicCompareAndSwapIntBarrier$VARIANT$mp:
0x7fff8b8dc524: movl %edi, %eax
libsystem_c.dylib`OSAtomicCompareAndSwap32$VARIANT$mp + 2:
0x7fff8b8dc526: lock
0x7fff8b8dc527: cmpxchgl%esi, (%rdx)
0x7fff8b8dc52a: sete %al
0x7fff8b8dc52d: movzbl %al, %eax
0x7fff8b8dc530: ret
0x7fff8b8dc531: nopl (%rax)
프로그램이 중지되고 0x7fff8b8dc526에서 포인트로 메인 surroundes입니다.
블록을 복사 해 보셨습니까? 블록이 스택에 만들어지고 비동기 메서드가 반환되면 무효화됩니다. 복사하여 힙으로 이동합니다. –
다음을 의미합니까 : [ownQueue addOperation : [blockOperation copy]]. 동일한 오류가 발생합니다. – dngfng
네, 그 뜻은 ... –