Прежде всего, метод SBJSON objectWithString:error:
вернет одно из следующих значений в зависимости от того, какой корневой объект находится в сообщении JSON:
Итак, вы не всегда должны предполагать, что он вернет вам словарь, если вы точно не знаете, что будет возвращено в JSON.
Во-вторых, вы выделяете новый объект NSDictionary, но затем присваиваете результат синтаксического анализа вашей переменной dict, вытекая ранее выделенный словарь.
Вам не нужна эта строка: dict = [[NSDictionary alloc]init];
.
Наконец, поскольку возвращаемый объект является словарем, вы можете получить все объекты из словаря следующим образом:
for (NSString *key in [dict allKeys])
{
NSDictionary *feed = [dict objectForKey:key];
//do stuff with feed.
}