• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Uninitialized rectangle??
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Uninitialized rectangle??


  • Subject: Re: Uninitialized rectangle??
  • From: Ken Thomases <email@hidden>
  • Date: Wed, 3 Mar 2010 14:14:01 -0600

On Mar 3, 2010, at 1:23 PM, fabian wrote:

> I once noticed that this code caused an assertion failure when placed
> in awakeFromNib.
>
> NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
> statusItem = [[statusBar statusItemWithLength:26] retain];
> NSRect frameRect = [[statusItem view] frame];
> MyStatusItemView *theView = [[MyStatusItemView alloc]
> initWithFrame:frameRect];
> [theView setDelegate:self];
> [statusItem setView:theView];
> [theView release];
>
> I didn't think much about it then - I simply moved the code to
> applicationDidFinishLaunching and everything was fine. But now I'm
> told the app is crashing nevertheless, AFAIK under 10.5.8 only:
>
> 3/2/10 3:12:49 PM MyProcess[13261] *** Assertion failure in
> -[MyStatusItemView initWithFrame:],
> /SourceCache/AppKit/AppKit-
> 949.54/AppKit.subproj/NSView.m:1099
> 3/2/10 3:12:49 PM MyProcess[13261] Uninitialized rectangle passed to
> [View initWithFrame:].
> 3/2/10 3:13:38 PM com.apple.launchd[115]
> ([0x0-0x104104].my.process[13261]) Exited abnormally: Interrupt
>
> It's definitely related to the app/nib not being up and ready to go.
> I'm displaying a dialog on first run in awakeFromNib. When the dialog
> is displayed (delaying the execution of this code), it works fine. On
> second launch it's a no go.
>
> How can the system status bar not be initialized at this point? It's
> not even part of the nib...

Probably, the -frame message is being sent to nil.  That could happen if statusBar, statusItem, or the statusItem's view is unavailable at the point where you're trying to access it.

For some messages, messaging nil gives you a well-defined result (0).  But for messages which return a struct, you get ill-defined results (garbage).
http://developer.apple.com/mac/library/documentation/cocoa/conceptual/ObjectiveC/Articles/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163-CH11-SW7

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Uninitialized rectangle??
      • From: fabian <email@hidden>
References: 
 >Uninitialized rectangle?? (From: fabian <email@hidden>)

  • Prev by Date: Re: Uninitialized rectangle??
  • Next by Date: Re: xcode-debug style toolbar above editor area
  • Previous by thread: Re: Uninitialized rectangle??
  • Next by thread: Re: Uninitialized rectangle??
  • Index(es):
    • Date
    • Thread