Я пытаюсь добавить данные из массива, созданного с помощью классов, в NSScrollView с использованием NSArrayController
Вот класс и массив:
class Serie: NSObject {
@objc dynamic var theID: String
@objc dynamic var serieName: String
@objc dynamic var serieAired: String
@objc dynamic var serieNetwork: String
@objc dynamic var serieStatus: String
init(theID: String, serieName: String, serieAired: String, serieNetwork: String, serieStatus: String ) {
self.theID = theID
self.serieName = serieName
self.serieAired = serieAired
self.serieNetwork = serieNetwork
self.serieStatus = serieStatus
}
}
@objc dynamic var Series: [Serie] = []
Далее я связываю NSArrayController смассив классов "Series" и связывание TableViewCell с каждым элементом класса.
Изображение дерева TableView
Привязки и выходы изображения ArrayController
Привязки и выходы из TableViewCell image
Следующая функция - заполнение «динамической серии var», которая связывает содержимое с NSArrayController и заполняет NSScrollView:
func GetSerieID(theSerieName: String){
let url = URL(string: ("https://api.thetvdb.com/search/series?name=" + theSerieName ))!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.setValue( "Bearer \(token)", forHTTPHeaderField: "Authorization")
//request.setValue( "en", forHTTPHeaderField: "Accept-Language")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print(error?.localizedDescription ?? "No data")
return
}
let json = try? JSON(data: data) // >> I use SwiftyJSON to manage JSON
let theJSONContent = json!["data"]
self.Series = [] // >> Empty the array Series
for (_,subJson):(String, JSON) in theJSONContent {
let serie = Serie(
theID: subJson["id"].stringValue,
serieName: subJson["seriesName"].stringValue,
serieAired: subJson["firstAired"].stringValue,
serieNetwork: subJson["network"].stringValue,
serieStatus: subJson["status"].stringValue
)
self.Series.append(serie) // >> Here is where it crashes
}
}
task.resume()
serieTabla.reloadData()
}
Время от времени, TableView не отображает и не обновляет представление правильно и загружает пустые данные, которые хорошо отображаются в течение нескольких секунд, если вы щелкнете по нему, но обычно это работает, пока не будет загружено более 10 результатов. Вот большая проблема.
Это происходит случайным образом, но обычно, когда вы превышаете 10-20 единиц.
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Журнал аварий:
miVideoGestor[82269:13639248] *** Assertion failure in -[NSTableRowData _addRowViewForVisibleRow:withPriorView:]
Не могу найти решение.
Может кто-нибудь подсказать, как решить проблему загрузки и отображения данных в tableView?
Спасибозаранее ребята