On 12/05/2010, at 6:36 AM, Alejandro Marcos Aragón wrote:

> Hi all,
> 
> I'm new to Cocoa, and I couldn't find information about an error that I'm 
> getting on the web. I'm trying to create an NSMutableDictionary where the 
> keys are of type UIButton*:
> 
> 
>                       // create button for unit
>                       UIButton* unitButton = [[UIButton alloc] init];
>                       [sourceButtonMap setObject:[NSString 
> stringWithString:@"no"] forKey:unitButton];
> 
> Of course, the sourceButtonMap is defined in the class and initialized in the 
> init function as sourceButtonMap = [[NSMutableDictionary alloc] init];
> 
> The error I get when I try to add the key-value pair is:
> 
> *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
> reason: '*** -[UIButton copyWithZone:]: unrecognized selector sent to 
> instance 0x3931e90'
> 
> Is this happening because I can't store UIButton* as keys?

Welcome to iPhone OS development!

This most certainly is happening because you cannot use UIButton objects as 
keys in a dictionary because NSDictionary copies the objects used as keys. 
Furthermore, UIButton does implement the NSCopying methods.

> Can anyone point me why I'm getting this error? Thank you all,

<http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html>

See the second paragraph of the section titled "Overview".

I suggest you revise your design. I don't know exactly what you're trying to 
do. Perhaps @"no" should be the key for the UIButton?

Kiel


> 
> aa_______________________________________________
> 
> 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/kiel.gillard%40gmail.com
> 
> This email sent to kiel.gill...@gmail.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