I've narrowed this down to the smallest case I can.

I have a method that loads a view and immediately releases it:

    UIWindow *win                    = [UIApplication
sharedApplication].keyWindow;
    TestVC *test = [[TestVC alloc] init];
    [win addSubview:test.view];
    [test.view removeFromSuperview];
    [test release];

And here is the entire TestVC class:

#import "TestVC.h"

@implementation TestVC

- (id)init
{
    self = [super init];
    if (self){}
    return self;
}

// Implement loadView to create a view hierarchy programmatically, without
using a nib.
- (void)loadView {

    UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen
mainScreen] applicationFrame]];
    contentView.backgroundColor = [UIColor blackColor];
    contentView.autoresizesSubviews = YES;
    [contentView release];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)dealloc {
    [super dealloc];
}

@end


When I look in ObjectAlloc, TestVC points to the "UIView *contentView"
declaration as created and still living. Is this just an objectAlloc bug, or
is there some other sort of autorelease thing that goes on behind the
scenes? I don't see any reason why this would still be hanging around.

Ugh.







On Fri, Apr 24, 2009 at 7:18 PM, Miles <vardpeng...@gmail.com> wrote:

> Very interesting, I'll give all that a shot and report back. Thanks so
> much!
>
>
>
>
> On Apr 24, 2009, at 7:07 PM, Peter N Lewis <pe...@stairways.com.au> wrote:
>
>  On 25/04/2009, at 8:28 , Miles wrote:
>>
>>> I just mean that I'm adding some labels and images to the view. I have
>>> quadruple checked that they are all being released, but I must be
>>> overlooking something.
>>>
>>
>> I doubt its your issue, but I recently had a problem like this that took
>> me far too long to track down.
>>
>> The debugging technique I used was to override retain/release/autorelease
>> and dealloc and have them just call NSLog and super, then set a breakpoint
>> on each, add a backtrace "bt" debugging command and set them to
>> auto-continue.
>>
>> Eventually, after much hair pulling I tracked it down to my
>> removeFromSuperview override neglecting to call super - ouch!
>>
>> But one technique for finding this might be to make a trivial subclass of
>> UIImage that does the above and use it for logo.
>>
>> One other possibility would be - does UIImage cache images created with
>> initWithContentsOfFile?  The tehcnique above might tell you if thats what is
>> happening, because you should see UIImage system code adding it to an
>> array/dictiuonary/set and not releasing it later.
>>
>> Enjoy,
>>  Peter.
>>
>> --
>>    Run macros from your iPhone with Keyboard Maestro Control!
>>        or take a break with Derzle for your iPhone
>>
>> Keyboard Maestro <http://www.keyboardmaestro.com/> Macros for your Mac
>> Aragom Space War <http://www.stairways.com/iphone/aragom> Don't get
>> killed!
>> Derzle <http://www.stairways.com/iphone/derzle> Enjoy a relaxing puzzle.
>> <http://www.stairways.com/>           <http://download.stairways.com/>
>>
>>
>>
>>
>> _______________________________________________
>>
>> 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/vardpenguin%40gmail.com
>>
>> This email sent to vardpeng...@gmail.com
>>
>
_______________________________________________

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