在我的應用程序的登錄程序,我公司通過服務器響應循環和保存一些數據在NSUserDefaults的:NSUserDefaults返回NSArray而不是NSDictionary。顯然,因爲iOS的9.0
NSMutableArray *unitTypeArray = [[NSMutableArray alloc] init];
[unitTypeArray addObject:@{@"Name":@"Item",
@"Description":@"Item",
@"ID":@"0",
@"Time":@"2014-12-29 12:00:00",
@"AddedByUserID":@"2",
@"Depth":@"0",
@"Height":@"0",
@"Width":@"0",
@"softLimit":@"10"}];
for (NSMutableDictionary *unitType in response) {
[unitType setValue:@10 forKey:@"softLimit"];
[unitTypeArray addObject:unitType];
}
[[NSUserDefaults standardUserDefaults] setObject:unitTypeArray forKey:@"unitTypes"];
後,我檢索此陣:
self.unitTypeArr = [[self.preferences objectForKey:@"unitTypes"] mutableCopy];
但我我回來了一個NSDictionary。這在iOS < 9.0中是完美的,但是從iOS 9.0開始,我的應用程序崩潰了。是否有修復或我必須將NSDictionary轉換爲NSArray?
什麼是崩潰消息? –
崩潰消息是: [__NSCFDictionary objectAtIndex:]:發送到實例的無法識別的選擇器 – Thomson
您能發佈更多代碼嗎?例如,什麼是self.preferences?只是緩存的引用[NSUserDefaults standardUserDefaults]?什麼是引用objectAtIndex的代碼? unitTypeArray可能是一個字典對象數組 - 也許你想從你讀取的數組中取出數組,而不是數組本身,也許是讀出來的? –