iPhone에서 내 dealloc의 NSStream 객체에서 release를 호출 할 때 EX_BAD_ACCESS가 발생하는 문제가 있습니다.Objective-C on iPhone 릴리스 문제
[outstream 릴리스]에 다음 코드와 EX_BAD_ACCESS
- (void)dealloc {
DLog(@"dealloc started for: %@",self);
@synchronized(self) {
lookupCount--;
if (lookupCount==0) {
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = NO;
}
}
DLog(@"inStream retain count before release: %d",[inStream retainCount]);
[inStream release];
DLog(@"outStream retain count before release: %d",[outStream retainCount]);
[outStream release];
[queryToSend release];
[resultString release];
[data release];
[super dealloc];
NSLog(@"dealloc finsihed for : %@",self);
}
충돌; 행. 이 될 수있는 사람이 왜 어떤 아이디어가 있는지 궁금
2009-04-29 13:16:28.547 App[30580:20b] -[SimpleQuery dealloc] [Line 160] dealloc started for: <SimpleQuery: 0x56e540>
2009-04-29 13:16:28.547 App[30580:20b] -[SimpleQuery dealloc] [Line 168] inStream retain count before release: 1
2009-04-29 13:16:28.548 App[30580:20b] -[SimpleQuery dealloc] [Line 170] outStream retain count before release: 1
을 다음과 같이
로그 출력은?
인스 트림 개체를 어떻게 작성하고 있습니까? 개체가 다른 방법으로 자동 완성 된 경우 일 수 있습니다. 따라서 그 개체를 해제하려고 할 때 실패하는 것입니다. – pgb
getStreamsToHostNamed를 호출하여 생성되었습니다. 포트 : inputStream : outputStream : 자동 다시 렌더링 된 객체를 반환하지 않아야합니다. 생각하지 않아요. –