API не содержит никаких значений для некоторых объектов, а Xcode выдает фатальную ошибку при запуске приложения.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 API не содержит никаких значений для некоторых объектов, а Xcode выдает фатальную ошибку при запуске приложения.

Сообщение Anonymous »

Мое приложение берет некоторые данные из этого API: https://api.jqestate.ru/v1/properties/country
Ссылка на мой проект на GitHub: https://github. com/armanharvel/JQ-Estate.git (загрузить ветку «Обновление»)
Ошибок компилятора нет, но когда я запускаю свое приложение в симуляторе, Xcode печатает в консоли:

"Неустранимая ошибка: индекс вне диапазона".

В ObjectModel.swift я создал класс объекта с некоторыми типами данных. Одним из них является переменная mainPic (URL изображения для TableVeiw, которое я также хочу получить из API). Но проблема в том, что не каждый объект в API содержит значение URL-адреса изображения.
Поэтому Xcode (когда я пытаюсь запустить приложение) отмечает вторую строку блока кода, который инициализирует mainPic. переменная и ошибка:

"Поток 7: EXC_BAD_INSTRUCTION (код=EXC_1386_INVOP, субкод=0x0)"

Вот весь класс в коде:
import Foundation

class Houses {

// Data Encapsulation

private var _mainPic: String
private var _localityName: String
private var _routeName: String
private var _mkadDistance: String
private var _rentOffer: String
private var _saleOffer: String

// Make a getted

var mainPic: String {
return _mainPic
}

var localityName: String {
return _localityName
}

var routeName: String {
return _routeName
}

var mkadDistance: String {
return _mkadDistance
}

var rentOffer: String {
return _rentOffer
}

var saleOffer: String {
return _saleOffer
}

// Initialization

init(data: JSONDictionary) {

// Main Picture

if let images = data["images"] as? JSONArray,
pic0 = images[0] as? JSONDictionary, // THIS LINE IS WITH ERROR
mainPic = pic0["url"] as? String {
self._mainPic = mainPic
} else {
_mainPic = ""
}

// Locality Name

if let location = data["location"] as? JSONDictionary,
localityName = location["localityName"] as? String {
self._localityName = localityName
} else {
_localityName = ""
}

// Route Name

if let location = data["location"] as? JSONDictionary,
routeName = location["routeName"] as? String {
self._routeName = routeName
} else {
_routeName = ""
}

// MKAD Distance

if let location = data["location"] as? JSONDictionary,
mkadDistance = location["mkadDistance"] as? String {
self._mkadDistance = mkadDistance
} else {
_mkadDistance = ""
}

// Rent Offer

if let rentDict = data["rentOffer"] as? JSONDictionary,
rentOffer = rentDict["price"] as? String {
self._rentOffer = rentOffer
} else {
_rentOffer = ""
}

// Sale Offer

if let saleDict = data["saleOffer"] as? JSONDictionary,
saleOffer = saleDict["price"] as? String {
self._saleOffer = saleOffer
} else {
_saleOffer = ""
}
}
}

На всякий случай, JSONDictionary и JSONArray — это просто псевдонимы типов:
typealias JSONDictionary = [String : AnyObject]

typealias JSONArray = Array


Подробнее здесь: https://stackoverflow.com/questions/374 ... -error-whe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»