我正在使用ARC,而且我幾乎可以肯定這是一個與內存相關的問題。能夠將對象添加到NSMutableDictionary,但嘗試訪問對象時出現'無法識別的選擇器'錯誤
我有幾個類:DiningHall
,Meal
和Station
。 DiningHalls
使用可變字典存儲各種meals
,並且每個meal
使用另一可變字典存儲各種stations
。當我嘗試從meal's
stationList屬性訪問station
,我得到以下錯誤:
下面是我測試調試代碼:之前我添加了一個新站到字典中,我試圖列出詞典的現有內容,給我下面的錯誤:
'NSInvalidArgumentException', reason: '-[__NSCFString name]: unrecognized selector sent to instance
DiningHall類中:
- (void) addStation:(Station*)s toMeal:(NSString*) mealType {
Meal *m = [self.mealList objectForKey:mealType];
NSArray* a = [m.stationList allKeys];
for (Station* s in a)
NSLog(@"%@", s.name); //line generating error
[m addStation:s];
}
內膳食類:
- (void)addStation:(Station *)station {
[self.stationList setObject:station forKey:station.name];
//also tried [self.stationList setValue:station forKey:station.name];
}
在膳食類的初始化:
self.stationList = [[NSMutableDictionary alloc] init];
原因我認爲這是與詞典中的問題是,當我取代stationList
字典,一個可變的陣列,(並適當地調節測試代碼),它沒有崩潰。