Yup.  Right you are.  Thanks.

This was originally a singleton class where it wouldn't have shown up. That
changed in redesign when we started switching different subclasses, which
caused the problem.


On 3/8/11 10:07 AM, "glenn andreas" <gandr...@mac.com> wrote:

> 
> On Mar 8, 2011, at 9:42 AM, Gordon Apple wrote:
> 
>> Class A:  NSObject, has methods:
>> 
>> -  (void)foo:(Notification*)notification {
>>    ...
>> }
>> 
>> - (void)addObservers {
>>    [[NSNotificationCenter defaultCenter] addObserver:self
>>                                             selector:@selector(foo:)
>>                                                 name:notificationName
>>                                               object:nil];
>> }
>> 
>> 
>> Class B: subclass of A.  This is the class used.
>> 
>> Notification sent from elsewhere.  Console:
>> 
>> -[NSCFString foo:]: unrecognized selector sent to instance 0x69807c0
>> 
>> 
>> Is this due to confusion of of which class received the notification?  Or is
>> this a compiler/linker bug?  I even tried declaring foo in A¹s headers, to
>> no avail.  This same overall procedure is used elsewhere (without
>> subclassing), with no problems.  What am I missing?
>> 
>> 
>> 
> 
> That's a classic memory management problem.
> 
> Most likely, you're forgetting to unregister your observer when you are
> deallocating it (resulting in a notification center to have a stale pointer
> that is later reused by an NSString).
> 
> 
> Glenn Andreas                      gandr...@gandreas.com
> The most merciful thing in the world ... is the inability of the human mind to
> correlate all its contents - HPL
> 



_______________________________________________

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