2015-06-28 4 views
0

После того, как вы проанализировали мои данные через swiftyjson, я ищу, чтобы отобразить проанализированную информацию в uitableview. Предположим, у меня есть список имен, которые я разбирал из json-файла. Я хотел бы, чтобы эти имена отображали каждый в своих соответствующих ячейках, чтобы позволить пользователю просматривать их все.Лучший способ отображения анализируемых данных swiftyjson?

Я также предположил бы, что если бы они выбрали выбранные ячейки, которые теперь отображаются в строке после того, как они были проанализированы, я могу фактически сохранить их в основном объекте данных, сохраняя их как возвращаемые строки? Дело в том, что я использовал функцию .append в массиве, который я создал, мы назовем names = [String](), чтобы фактически позволить значениям действительно прийти к ячейкам.

Но при этом я заметил огромный всплеск в использовании процессора, так как он продолжает добавлять их, чтобы сказать, что первое имя - матовое второе имя - john и т. Д., Тогда оно создает новую ситуацию в массиве каждый раз. поэтому в первый раз, когда он читает только матовый, тогда следующий println будет печатать матовый, затем следующий напечатает матовый, john, tom и т. д., пока список json-имен не будет завершен.

Если у меня есть 500 имен или более, то для обработки всех этих имен в массив требуется некоторое время. Я знаю, что должен быть другой способ, но все ссылки, которые я вижу, используют метод .append. Таким образом, мой код будет names.append (Name). Имя - это синтаксическая строка из swiftyjson. Оттуда я действительно могу заполнить табличное представление, которое прекрасно отображает правильно в конце, но требует, чтобы устройство некоторое время заполнялось, поскольку сначала ему нужно обрабатывать добавление всех 500 имен каждый раз, когда вызывается синтаксический анализ. Я надеюсь, что имена 500 будут перепроверены каждый раз в случае добавления новых. Все это теперь хранится как локальный json-файл.

Код, который я использую ниже, я могу определить часть UItableview, но это скорее вопрос о том, является ли добавление массива лучшим и наиболее эффективным способом отображения проанализированных данных из swiftyjson.

let path = NSBundle.mainBundle().pathForResource("List", ofType: "json") 
let jsonData = NSData(contentsOfFile: path!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: nil) 
let json = JSON(data: jsonData!) 
for (key, subJson) in json["array"] { 
    if let Name = subJson["Name"].string { 
     NameList.append(Name) 
     println(NameList) 
    } 
} 

ответ

0

возможно map функция Swift является более эффективным

… 
let json = JSON(data: jsonData!) 
var nameList = [String]() 
if let subJson = json["array"] as [Dictionary<String,NSObject>]? { 
    nameList = subJson.map { $0["name"] as! String } 
} 
+0

Моим вопроса больше с зависанием приложения фактически Добавляя 500 имен в массив 1 на 1. Будет ли изменить эту функцию карты, которая? Или есть лучший способ просмотреть все данные json в виде таблицы? – Matthew

+0

в основном функция карты делает то же самое, что и цикл, но более эффективным способом. Чтобы избежать блокировки основного потока, рассмотрите возможность загрузки данных в фоновый поток. – vadian

+0

. Помимо добавления массива, есть ли еще один возможный способ получить считывание непосредственно из json-файла в tableview? Все, что я когда-либо видел, это примеры добавлений, но поскольку добавление массива может занять немного времени каждый раз, когда он проверяет наличие новых данных, кажется, что он неэффективен. Мне нравится идея картографирования, хотя она кажется намного более эффективной. – Matthew

Смежные вопросы