Я новичок в CoreData
и застрял в сериализации модели CoreData
.
Мне нужно синхронизировать сохранение всего объекта в коде с API.Я могу сохранить контекст и получить результат.Проблема в функции, где я вызываю API для синхронизации.
Вот мой код:
var theJSONText = ""
dataToSend["trigger"] = ""
dataToSend["gcm"] = ""
dataToSend["client"] = "ios"
dataToSend["deviceId"] =
UIDevice.current.identifierForVendor!.uuidString
dataToSend["deviceName"] = UIDevice.current.name
dataToSend["login_source"] = loginSource
dataToSend["lastsync"] = 0
dataToSend["rows"] = []
dataToSend["urlencode"] = true
if let rows = rows {
for row in rows {
if row.syncRequired == 1 {
rowsToSync.append(row)
}
}
}
rowsToSync.resultType = NSDictionary
dataToSend["rows"] = rowsToSync
print( dataToSend["rows"])
if let theJSONData = try? JSONSerialization.data(
withJSONObject: dataToSend,
options: []) {
theJSONText = String(data: theJSONData,
encoding: .ascii)!
print("JSON string = \(theJSONText)")
}
params["data"] = theJSONText
APIService.shared.syncUser(params: params) { (success, data, error) in
if success {
print("success in global sync")
rows = data?.rows
} else {
print("failure in global sync")
print(error?.errorMessage)
}
}
Здесь rows
- это массив, содержащий все объекты.Это сохраняется в CoreData
.
API работает нормально, когда я ничего не передаю в rows
, но когда он содержит объекты, код вылетает в строке `:
try? JSONSerialization.data(
withJSONObject: dataToSend
ошибка на консоли:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (Rows)'