On Apr 17, 2010, at 3:39 PM, Alexander Bokovikov wrote:

> 
> On 18.04.2010, at 1:30, Jens Alfke wrote:
> 
>> 
>> On Apr 17, 2010, at 12:18 PM, Alexander Bokovikov wrote:
>> 
>>> *** _NSAutoreleaseNoPool(): Object 0x209fa0 of class NSCFString 
>>> autoreleased with no pool in place - just leaking
>> 
>> Set a breakpoint at _NSAutoreleaseNoPool and start the app. That should show 
>> you where it’s happening.
> 
> I'm sorry... but how to do it? Where can I find this line? AFAIU, it is out 
> of my source code... Sorry, I'm a newbie...
> 
>> Most likely you started an NSThread without putting an autorelease pool in 
>> the thread’s main function, or you got a callback on some thread and are 
>> making Cocoa calls on it without wrapping your callback in an autorelease 
>> pool.
> 
> Start NSThread even BEFORE main() ? Is it possible?


The first thing you need to do in your method that the thread calls is create 
an auto release pool. Something like:

-(void) createThread {
 NSThread *loadThread = [[NSThread alloc] initWithTarget:self 
selector:@selector(createSpreadSheetReport) object:nil];
            [loadThread start];
            [loadThread release];
}

- (void) createSpreadSheetReport {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [self.appModel spreadSheetReport];
    [self performSelectorOnMainThread:@selector(setSpreadsheetReport) 
withObject:self waitUntilDone:YES];
    [pool release];
}

Dave


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to