Вот код:
NSError *parseError;
NSMutableArray *listOfObjects = [NSJSONSerialization JSONObjectWithData:[@"[]" dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&parseError];
NSLog(@"Is mutable? %li", [listOfObjects isKindOfClass:[NSMutableArray class]]);
listOfObjects = [NSJSONSerialization JSONObjectWithData:[@"[[],{}]" dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&parseError];
NSLog(@"Is mutable? %li", [listOfObjects isKindOfClass:[NSMutableArray class]]);
Как видите, я вызываю точно такой же метод для анализа JSON оба раза, один с пустым списком в JSON, а потом список с объектом внутри. Вот результат:
Is mutable? 0
Is mutable? 1
Проблема в том, что NSJSONSerialization, похоже, не следует возможности создания изменяемых контейнеров для пустых списков. Мне кажется, что это ошибка, но, возможно, я просто неправильно понимаю.
Есть идеи?