Thanks a lot for the reply.
I was able to figure out the problem.
I was doing following sequence of things -

-          NSOpenPanel* openPanelRef = [[NSOpenPanel alloc] init]; // created 
an instance of open panel

-          MyCustomDelegate* openPanelDelegate = [[MyCustomDelegate alloc] 
init]; // created instance of custom delegate

-          [openPanelRef setDelegate : openPanelDelegate]; // attached as a 
delegate

-          [openPanelRef runModal]; // ran the modal open dialog

-          // Missed something here

-          [openPanelRef release];

-          [openPanelDelegate release];


-          After all the open stuff, whenever I open any other window, 
application used to crash.


The fix was placing [openPanelRef setDelegate: nil]; in the "//Missed something 
here".

Still I was wondering, System should not have send some message to the delegate 
once the dialog is dismissed.
That's strange behavior.

-Sanyam

From: Jens Alfke [mailto:j...@mooseyard.com]
Sent: Friday, August 12, 2011 9:20 AM
To: Sanyam Jain
Cc: cocoa-dev@lists.apple.com
Subject: Re: Application crashes after launching Open/Save dialogs


On Aug 8, 2011, at 2:34 AM, Sanyam Jain wrote:


Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                              0x92dd3eec objc_msgSend + 44


A crash in objc_msgsend means a message was sent to a bad object pointer. 
Usually this means the object has already been dealloced and so its memory is 
garbage. (You can read up on NSZombieEnabled in the docs, for a general 
technique to debug this.)


2   com.apple.CoreFoundation                   0x93c4e793 __CFXNotificationPost 
+ 947
3   com.apple.CoreFoundation                   0x93c4e19a 
_CFXNotificationPostNotification + 186


>From this you can deduce that a notification is being delivered. So what's 
>going on is that one of your objects registered for NSNotifications, but 
>forgot to remove itself as an observer in its -dealloc method, so the 
>NSNotificationCenter still has a dangling pointer to it.

11  com.apple.Foundation          0x918ad669 -[NSNotificationCenter 
postNotificationName:object:] + 56
12  com.apple.AppKit                     0x93ea151a -[NSTableView 
_enableSelectionPostingAndPost] + 509
13  com.apple.AppKit                     0x93eacc17 -[NSTableView 
selectRowIndexes:byExtendingSelection:] + 168

...And from this, it looks like the notification is posted because a table 
view's selection changed.

>From this you ought to be able to figure out what class the bug is in and fix 
>it. The rule of thumb is that in ANY class where you register self as an 
>observer with an NSNotificationCenter, you MUST remove self as an observer in 
>the -dealloc method.

-Jens
_______________________________________________

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