On Dec 1, 2010, at 15:43, k...@highrolls.net wrote:

> The code below explodes on the loadNibNamed call but I have done this many 
> times ... where am I wrong?
> 
> @interface About : NSPanel {
> 
> }
> 
> 
> - (IBAction)about:(id)sender {
>       
>       About *aboutpanel = [[About alloc] init];
>       [aboutpanel retain];
>       BOOL ok = [NSBundle loadNibNamed:@"About" owner:aboutpanel];
>       if(ok)
>       {
>               [NSApp runModalForWindow:aboutpanel];
>       }
>       
>       
> }
> 
> 
> any help appreciated …

Hmmm… haven't you read the basic documentation about memory management in 
Objective-C? What about NSWindow and NSPanel?

There are many things wrong in the little excerpt of code you provided. You 
first create a new instance of your NSPanel's subclass "About" without using 
one of 2 recommended initializers for NSWindow. After doing your alloc/init, 
you even put a "retain" that is totally unnecessary. By doing alloc/init, you 
already "own" aboutpanel, there is no need to retain it. That tells me, sorry 
to say this, that you're missing some basic concepts of Objective-C.

Finally, although I guess that, in theory, you can have an instance of NSPanel 
as the owner of a nib, I've never seen anything like it in the 15 years I've 
been programming in Objective-C. Usually, the nib is owned by some controller 
object, which manages the interface (view) with the data (model) driving the 
view.

So, I think you should get a good book about the fundamentals of Objective-C 
and Cocoa and start reading. I'm not even sure where to start to help!

You just can't slap a few methods here and there without thinking about what 
you're doing, sorry. It doesn't work that way.

-Laurent.
-- 
Laurent Daudelin
AIM/iChat/Skype:LaurentDaudelin                                 
http://www.nemesys-soft.com/
Logiciels Nemesys Software                                      
laur...@nemesys-soft.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