어떤 이유로 dispatch_async 스레드가 있으며 NSLog() 메소드가 실행되지 않으면 충돌합니다. 블록은 데이터베이스에서 사용자 이름을 검색하는 메소드를 실행합니다.Obj-C : NSLog없이 dispatch_async가 작동하지 않습니다.
충돌 :
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
user_web_communicator *usrWeb = [[user_web_communicator alloc]init];
NSString *author = [usrWeb getUsernameFromID:author_string];
[_author_label setText:[NSString stringWithFormat:@"Author: %@",author]];
});
작업 :
NSLog(@"Fetching author for id: %@",author_string);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
user_web_communicator *usrWeb = [[user_web_communicator alloc]init];
NSString *author = [usrWeb getUsernameFromID:author_string];
[_author_label setText:[NSString stringWithFormat:@"Author: %@",author]];
});
오류
2013-08-19 13:56:06.149 Poll Me[4995:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '{
행 : AsyncImageView : 0x827aa00.minX의 == * 10 + 1 + 0x827b8d0.marker -1 * 0x8281210.marker + 0.5 * 0x8281260.marker AsyncImageView : 0 x827aa00.minY == 27.5 + -1 * 0x827b910.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + -0.5 * AsyncImageView : 0x827aa00.Height Regular_Cell : 0x827a400.Hight == 56 + 1 * 0x82823f0.marker Regular_Cell : + 0x827a400.Width의 == 1 * 320 0x8281ee0.marker Regular_Cell : 0x827a400.minX == 0 + 1 * 0x8281740.marker + -0.5 * 0x8281ee0.marker Regular_Cell : = 0x827a400.minY UILabel : 0x827a8e0.Width == 0 + 1 * 0x827b730.marker + 1 * UILabel : 0x827a8e0.minX == 18 + 1 * 0x827b7d0.marker + 1 * == 19.5 + -1 * 0x827b810.m arker + 1 * 0x827b890.marker + -1 * 0x827b910.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + 0.5 * AsyncImageView : 0x827aa00.Height + -1 * UILabel : 0x827a8e0 .0e8 = 0x827b730.marker + 1 * 0x827127.marker + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker + 1 * AsyncImageView : UILabel : 0x827b140.Height UILabel : 0x827adc0.minx == 18 + 1 * 0x827aa00.Width UILabel : 0x827adc0.minY == 20.5 + 1 * 0x827b6f0.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker UILabel : 0x827b140.minx == 18 + 1 * 0x827b850.marker + 1 * 0x827b8d0. 마커 + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker +1 * AsyncImageView : 0x827aa00.Width UILabel : 0x827b140.minY == 27.5 + 1 * 0x827b890.marker + -1 * 0x827b910.marker + -1 * 0x82812a0 .marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + 0.5 * AsyncImageView : 0x827aa00.Height + -1 * UILabel : 0x827b140.Height UITableViewCellContentView : 0x827a560.Height의 == 55 + 1 * 0x82812e0.marker UITableViewCellContentView : 0x827a560.Width == 300 + 1 * 0x8281260.marker UITableViewCellContentView : 0x827a560.minX == 0 + 1 + -0.5 * 0x8281210.marker * 0x8281260.marker UITableViewCellContentView : 0x827a560.minY의 == 0.5 + 1 * 0x82812a0.marker + -0.5 * 0x82812e0.marker 대물 < ==> + < 750 : -1> * 0x8280fc0.negError + < 250 : 27> * 0x8280fc0.posErrorMarker + < 750 : -1> * 0x8281030.negError + < 250 : -1> * 0x8281030.posErrorMarker
구속 : 마커 : 0x8281210.marker 마커 : 0x8281260.marker 마커 : 0x82812a0.marker (Integralization 조정 : 0.5) 마커 : 0x82812e0.marker 마커 : 0x8281740.marker 마커 : 0x8281b30.marker 마커 : 0x8280fc0.posErrorMarker 마커 : 0x8281030.posErrorMarker 마커 : 0x827b6f0.marker 마커 : 0x827b730 .marker 마커 : 0x827b790.marker 마커 : 0x827b7d0.marker 마커 : 0x827b810.marker 마커 : 0x827b850.마커 마커 : 0x827b890.marker 마커 : 0x827b8d0.marker 마커 : 0x827b910.marker 마커 : 0x8281ee0.marker 마커 : 0x82823f0.marker} : 내부 오류입니다. 들어오는 헤드 0x8280fc0.negError에 대해 나가는 행 헤드를 찾을 수 없습니다. 발생하지 않아야합니다. ' * 먼저 던져 호출 스택 : (0x195d012 0x166ae7e 0x195cdeb 0xefef89 0xf01fcf 0xf025c7 0xf0d58f 0xf0d6d4 0x7d860a 0x7e02af 0x7e03be 0x2e7601 0x49484e 0x354ced 0x2e940c 0x354a7b 0x359919 0x3599cf 0x3421bb 0x352b4b 0x2ef2dd 0x167e6b0 0x17dfc0 0x17233c 0x172150 0xf00bc 0xf1227 0xf18e2 0x1925afe 0x1925a3d 0x19037c2 0x1902f44 0x1902e1b 0x29be7e3 0x29be668 0x29effc 0x1e5ed 0x1d75) 2013년 8월 19일 13 : 56 : 06.149 설문 조사 나 [4995 : 4f03 * 의한 캐치되지 예외 'NSInternalInconsistencyException'이유 응용 프로그램 종료 '{행 : AsyncImageView : 0x827aa00.minX의 == 10 + 1 * 0x827b8d0.marker + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker AsyncImageView : 0x827aa00.minY == 2 7.5 + -1 * 0x827b910.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + -0.5 * AsyncImageView : 0x827aa00.Height Regular_Cell : 0x827a400.Hight == 56 + 1 * 0x82823f0. 0x827a400.minX == 0 + 1 * 0x8281740.marker + -0.5 * 0x8281ee0.marker Regular_Cell : 마커 Regular_Cell : 1 * 0x8281ee0.marker Regular_Cell + 0x827a400.Width의 == 320 0x827a400.minY의 == 46 + 1 * 0x8271b30.marker + -0.5 * 0x82823f0.marker UILabel : 0x827a8e0.Width == 0 + 1 * 0x827b730.marker + 1 * 0x827b790.marker + -1 * 0x827b7d0.marker + 1 * UILabel : 0x827adc0.Width UILabel : 0x827a8e0 + .minX의 == 1 * 18 + 1 * 0x827b7d0.marker 0x827b8d0.marker + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker + 1 * AsyncImageView : UILabel의 0x827aa00.Width : 0x827a8e0.minY의 == 19.5 + - 1 * 0x827b810.marker + 1 * 0x827b890.marker + -1 * 0x827b910.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + 0.5 * AsyncImageView : 0x827aa00.Height + -1 * UILabel : 0x827a8e0.Height + -1 * UILabel : 0x827b140.Hight UILabel : 0x827adc0.minX == 18 + 1 * 0x827b730.marker + 1 * 0x827b8d0.marker + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker +1 * AsyncImageView : 0x827aa00. 너비 UILabel : 0x827adc0.minY == 20.5 + 1 * 0x827b6f0.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker UILabel : 0x827b140.minx == 18 + 1 * 0x827b850.marker + 1 * 0x827b8d0.marker + -1 * 0x8281210.marker + 0.5 * 0x8281260.marker + 1 * AsyncImageView : UILabel의 0x827aa00.Width : 0x827b140.minY의 == 1 27.5 + + * 0x827b890.marker -1 * 0x827b910.marker + -1 * 0x82812a0.marker + 0.5 * 0x82812e0.marker + 0.5 * 0x82823f0.marker + 0.5 * AsyncImageView : 0x827aa00.Height + -1 * UILabel : 0x827b140.Hight U ITableViewCellContentView : 0x827a560.Height의 == 55 + 1 * 0x82812e0.marker UITableViewCellContentView : 0x827a560.Width == 300 + 1 * 0x8281260.marker UITableViewCellContentView : 0xlibC++ abi.dylib : 종료라는 exception827a560.minX == 0 던지고 + 1 * 0x8281210.marker + -0.5 * 0x8281260.marker UITableViewCellContentView : 0x827a560.minY의 == 0.5 + 1 * 0x82812a0.marker + -0.5 * 0x82812e0.marker 대물 < ==> + < 750 : -1> * 0x8280fc0 .negError + < 250 : -1> * 0x8280fc0.posErrorMarker + < 750 : -1> * 0x8281030.negError + < 250 : -1> * 0x8281030.posErrorMarker
구속 : 마커 : 0x8281210.marker,536 91,363,210 마커 : 0x8281260.marker 마커 : 0x82812a0.marker (Integralization 조정 : 0.5) 마커 : 0x82812e0.marker 마커 : 마커 0x8281740.marker : 0x8281b30.marker 마커 : 0x8280fc0.posErrorMarker 마커 : 0x8281030.posErrorMarker 마커 : 0x827b6f0 .marker 마커 : 0x827b730.마커 마커 : 0x827b790.marker 마커 : 0x827b7d0.marker 마커 : 0x827b810.marker 마커 : 0x827b850.marker 마커 : 0x827b890.marker 마커 : 0x827b8d0.marker 마커 : 0x827b910.marker 마커 : 0x8281ee0.marker 마커 : 0x82823f0.marker} : 내부 오류. 들어오는 헤드 0x8280fc0.negError에 대해 나가는 행 헤드를 찾을 수 없습니다. 발생하지 않아야합니다. ' * 먼저 던져 호출 스택 : (0x195d012 0x166ae7e 0x195cdeb 0xefef89 0xf01fcf 0xf020d3 0x7d86dc 0x7d9280 0x7dd4a3 0x3f7e3c 0x3f8022 0x3f8064 0x2f33b 0x27782e8 0x2778450 0x92710e72 0x926f8d2a 0x2787014 0x277553f) (lldb)이 될 수없는 이유
당신이 말해 주실 래요 사고? NSLog()를 여러 번 실행하고 출력을 읽으려고 할 때 NSLog()를 유지하기를 원하지 않습니다. 미리 감사드립니다 =)
어떻게 충돌합니까? – Jesper
질문에 실제 오류 메시지를 넣으면 대답하기가 더 쉽습니다. :) –
지금 업데이트 ... 죄송합니다. 오류 메시지가 매우 길어집니다. –