Wait, I take that back; I forgot this is an AppKit list, not a UIKit list. Yeah, you're right, in AppKit (unlike in UIKit) top-level un-parented objects don't get autoreleased. There's, so there's a leak there, yep.
On Wed, May 12, 2010 at 4:28 PM, Patrick M. Rutkowski <[email protected]> wrote: > Assuming the "main_object" is set to "assign" instead of "retain" what > happens is: > > 1) The nib loads, and Apple's nib-loader code instantiates the object > from the nib file (call it foo) > 2) Apple's nib loader code then calls [foo autorelease] > 3) Apple's nib loader code then does "owner.main_object = foo" (which > does a raw assign) > 4) The "foo" ends up having a retain count of 1, and being in the > autorelease pool, which means it doesn't leak; but it will live long > enough so I can use it > 5) Doing "owner.main_object = something_else" will not break anything, > obviously > > END OF STORY! :-p > > If you want to tell me there's a problem somewhere there, then please > point a specific step #, and be very descriptive; because I'm pretty > darn sure I have it right. > > -Patrick > > On Wed, May 12, 2010 at 4:21 PM, Gustavo Pizano > <[email protected]> wrote: >> MMM I dunno about that.. >> >> now I got confused.. >> setMainObject:(NSObject *)value{ >> [main_opbecjt release]; >> main_object = nil; >> [value retain]; >> main_object = value.. >> } >> >> thats how I see a retain setter property. >> >> please correct me if Im wrong. >> >> does the IBOutlet connection also retains? >> >> G. >> >> On May 12, 2010, at 10:14 PM, Rafael Cerioli wrote: >> >>> Ok, but I meant that if you use your setter setMain_object: afterward, your >>> first main_object will be leaked, correct me if I'm wrong ? >>> >>> >>> Le 12 mai 2010 à 15:48, Patrick M. Rutkowski a écrit : >>> >>>> Nope, there's no leaks or bad accesses with the "assign" in the >>>> @property on main_object. >>>> >>>> main_object will end up having a retainCount of 1, and be in the >>>> autorelease pool, destined to be freed; it's all as I wanted. >>>> >>>> It's all in line with what's described in >>>> http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html >>>> >>>> On Wed, May 12, 2010 at 3:37 PM, Rafael Cerioli >>>> <[email protected]> wrote: >>>>> In addition, don't you need a retain policy for your main_object property >>>>> ? I'm not sure of the behavior of the nib loading process, but in the >>>>> best case I think you will have a leak there, in the worst case, a bad >>>>> access. >>>>> >>>>> Rafael >>>>> >>>>> Le 12 mai 2010 à 14:57, Gustavo Pizano a écrit : >>>>> >>>>>> Hello Patrick, >>>>>> >>>>>> I don't know but I see weird the way you initialize the MyFilesOwner.. >>>>>> >>>>>> Normally I would do .. >>>>>> >>>>>> MyFieOwner * owner = [[MyFileOnwer alloc] iniWithNibName:@"Test" >>>>>> nibBundle:nil]; >>>>>> >>>>>> of course taking into mind that MyFileOnwer would be a NSViewController, >>>>>> which in your example is not. >>>>>> >>>>>> >>>>>> but your error is >>>>>> >>>>>> [ >>>>>> NSBundle >>>>>> loadNibNamed: @"TestNib.xib" >>>>>> owner: owner >>>>>> ]; >>>>>> >>>>>> it should be >>>>>> >>>>>> >>>>>> [ >>>>>> NSBundle >>>>>> loadNibNamed: @"TestNib" >>>>>> owner: owner >>>>>> ]; >>>>>> >>>>>> >>>>>> Gustavo >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On May 12, 2010, at 8:35 PM, Patrick M. Rutkowski wrote: >>>>>> >>>>>>> I'm so horribly confused about why the below sample project fails to >>>>>>> load the object from "TestNib.xib". >>>>>>> >>>>>>> I expect to print something like: >>>>>>> loaded object: (<SOME_POINTER_HERE>) >>>>>>> >>>>>>> But instead I just get: >>>>>>> loaded object: (0x0) >>>>>>> >>>>>>> Could someone help clue me in? >>>>>>> >>>>>>> Test Project: http://www.rutski89.com/static/TestApp.zip >>>>>>> >>>>>>> I could just be really tried today, did I make a silly type-o somewhere? >>>>>>> -Patrick >>>>>>> >>>>>>> >>>>>>> P.S. >>>>>>> I tried changing the "main_object" property from assign to retain, but >>>>>>> it didn't help. >>>>>>> _______________________________________________ >>>>>>> >>>>>>> Cocoa-dev mailing list ([email protected]) >>>>>>> >>>>>>> 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/gustavxcodepicora%40gmail.com >>>>>>> >>>>>>> This email sent to [email protected] >>>>>> >>>>>> _______________________________________________ >>>>>> >>>>>> Cocoa-dev mailing list ([email protected]) >>>>>> >>>>>> 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/rafael.cerioli%40gmail.com >>>>>> >>>>>> This email sent to [email protected] >>>>> >>>>> >>> >> >> > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
