標題幾乎說明了一切。我想創建一個NSMutableDictionary,我使用UIImageView來查找布爾值。這裏是什麼樣子:使用UIImageView作爲NSMutableDictionary中的鍵來查找布爾值
我.h文件中:
@interface ViewController : UIViewController{
UIImageView *image1;
UIImageView *image2;
NSMutableDictionary *isUseable;
}
@property (nonatomic, retain) IBOutlet UIImageView *image1;
@property (nonatomic, retain) IBOutlet UIImageView *image2;
@property (nonatomic, retain) NSMutableDictionary *isUseable;
我.m文件:
@synthesize image1, image2;
@synthesize isUseable
- (void)viewDidLoad
{
isUseable = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@NO, image1,
@NO, image2,nil];
}
-(void)runEvents{
if(some condition){
[isUseable setObject:@YES forKey:(id)image1];
}
//Use it later:
if(isUseable[image1]){
//Do stuff
}
}
它編譯,但是當我運行它,我得到一個未捕獲的異常 'NSInvalidArgumentException',原因:' - [UIImageView copyWithZone:]:無法識別的選擇器發送到實例。
我猜測問題在於NSDictionary類複製其密鑰的事實。有沒有辦法在這種情況下得到一本字典?如果不是,我應該如何設置一個像我想要的那樣的查找?任何想法/建議?
謝謝,這有幫助。我感到困惑了一段時間,直到我意識到我必須設置自己的標記值(因爲沒有仔細閱讀您的答覆,我的錯是我的錯)。我也喜歡下面的哈希建議,因爲我不必考慮提出自己的ID。 – c31983 2013-02-18 03:30:10