0
我越来越喜欢下面的错误错误的列表,当我编译我的iOS项目。运行时错误:__NSAutoreleaseNoPool():...自动释放与地方没有游泳池 - 刚刚泄露
2011-08-25 12:32:44.016 rtsp[55457:6003]
*** __NSAutoreleaseNoPool(): Object 0x64095a0 of class __NSArrayM
autoreleased with no pool in place - just leaking
这似乎是因为下面的函数
- (void) start {
//Existing code
session = [[RTSPClientSession alloc] initWithURL:
[NSURL URLWithString:
@"rtsp://video3.americafree.tv/AFTVComedyH2641000.sdp"]];
[session setup];
NSLog(@"getSDP: --> %@",[ session getSDP ]);
NSArray *array = [session getSubsessions];
for (int i=0; i < [array count]; i++) {
RTSPSubsession *subsession = [array objectAtIndex:i];
[session setupSubsession:subsession clientPortNum:0 ];
subsession.delegate=self;
[subsession increaseReceiveBufferTo:2000000];
NSLog(@"%@", [subsession getProtocolName]);
NSLog(@"%@", [subsession getCodecName]);
NSLog(@"%@", [subsession getMediumName]);
NSLog(@"%d", [subsession getSDP_VideoHeight]);
NSLog(@"%d", [subsession getServerPortNum]);
}
[session play];
NSLog(@"error: --> %@",[session getLastErrorString]);
[session runEventLoop:rawsdp];
}
当我添加和NSAutoreleasePool
到我的功能
- (void) start {
NSAutoReleasePool *pool=[[NSAutoReleasePool alloc] init];
session = [[RTSPClientSession alloc] initWithURL:[NSURL ...
...
[pool drain];
}
的错误是走了,但我不会得到任何输出我功能。是增加NSAutoreleasePool
正确的解决方案?
好,谢谢,但你能告诉我更多具体在哪里,我应该将自动释放池?我的意思是我们在哪里正常放置它们。对不起,如果答案很明显,但我是iOS开发新手。 – Anila
检查编辑 – Daniel