On 16 Mar 2013, at 21:52, Kevin Muldoon wrote:

I'd think adding the WindowController to a @property (strong, nonatomic) NSArray *array; would keep those objects alive. Most often, I would simply add each WindowController (or in my case, ViewController) one-at-a-time in the .h. I simply feel it's clearer to see.

@property (strong, nonatomic) RJLarryViewController *larryViewController; @property (strong, nonatomic) RJCurleyViewController *curleyViewController;
@property (strong, nonatomic) RJMoeViewController *moeViewController;


Yeah, but since he isn't tracking the closing (disposing) of the window's, he can't then release the reference, so it will leak.

Probably the best way I can think of to do it elegantly, would be to write a wrapper manager class around the window's which tracks when they are to be disposed of and removes the corresponding entry is a dictionary or array. One thing you can do is to convert the Object pointer to a hex string and use this as a key into a dictionary. Then just check if *that* window object is being disposed of and is in the dict, remove it.

e.g.

obj*                    myObj;

myObjKey = [[NSStriing alloc] initWithFormat:@"%p",myObj];



When you create a new window, do something like this:

[WRAPPERCLASS addWindow:myWindow];

addWindow:myWindow, adds it to the dict and sets a monitor for it closing.


One thing that puzzles me is, in the non ARC build, don't you get an Analyzer Warnings on this?

Cheers
Dave


On Mar 16, 2013, at 5:38 PM, Chris Paveglio <chris_paveg...@yahoo.com> wrote:

Sure I totally understand that. My question is more of "what is the most elegant way to do it". Add them to an array?


----- Original Message -----
From: iain <i...@sleepfive.com>
To: Chris Paveglio <chris_paveg...@yahoo.com>
Cc: Cocoa Dev List <Cocoa-dev@lists.apple.com>
Sent: Saturday, March 16, 2013 2:35 PM
Subject: Re: ARC Release too soon



On 16 Mar 2013, at 06:16 PM, Chris Paveglio <chris_paveg...@yahoo.com> wrote:

So, am I doing some fundamental window management wrong (not sure since old app worked OK and didn't seem to leak), or how do I do something so ARC doesn't dealloc window controllers at the end of the function that fires them off

If you want the window controllers to hang around after the function finished you need to assign them to a strong variable otherwise they will be released.

Iain
_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/caoimghgin% 40gmail.com

This email sent to caoimgh...@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:
https://lists.apple.com/mailman/options/cocoa-dev/dave% 40looktowindward.com

This email sent to d...@looktowindward.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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to