[英]"unrecognized selector sent to instance" exception error
我已經閱讀了所有“無法識別的選擇器發送到實例”的答案,但它們似乎不適用於我的情況。
我已經設置了一個 NSMutableDictionary 這樣的......
NSMutableDictionary *ObjectDynamic = [NSDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
然后在稍后的代碼中我試圖添加另一個對象/鍵,用這個...
[ObjectDynamic setObject:mySprite forKey:@"pSObject"];
但是我在那條線上遇到了一個例外,其中...
-[__NSDictionaryI setObject:forKey:]: 無法識別的選擇器發送到實例
不能像這樣添加另一個鍵/值對嗎?
編輯
一個簡單的錯誤,我只是想制作一個 NSDictionary 而不是 NSMutableDictionary! 無論如何,感謝您的回答。
那是因為您初始化了一個不具有setObject:forKey:
方法的不可變 NSDictionary。 改為初始化一個可變的:
NSMutableDictionary *ObjectDynamic = [NSMutableDictionary
dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil];
從 Xcode 4.4 開始,您還可以使用新的字典文字非常輕松地初始化不可變字典,然后使用mutableCopy
。
NSMutableDictionary *objectDynamic = [@{@"pFObject" : pObject,
@"tFObject" : tObject} mutableCopy];
請注意,在 Objective-C 中,變量名應該以小寫字母開頭。
為了能夠更改字典的內容,您需要制作NSMutableDictionary
,而不是不可變的NSDictionary
:
NSMutableDictionary *ObjectDynamic = [NSMutableDictionary // <<== Here
dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.