Когда вы работаете с обработчиками завершения, которые возвращают необязательное значение и необязательную ошибку, вы всегда должны привязывать значение необязательно, проверяя, является ли ошибка nil
или нет. Это решит вашу проблему, вызванную тем, что вы пытаетесь позвонить Optional
map
вместо Array
.
sharedDatabase.perform(query, inZoneWith: nil) { (records, error) in
guard let records = records, error == nil else {
return reject("there is error", "no logs", error!)
}
NSLog("found results")
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let resultLogs = records.map { log in
return [
"log": log.object(forKey: "log") ?? "N/A" as __CKRecordObjCValue,
"createdAt": formatter.string(from: log.creationDate ?? Date())
]
}
resolve(resultLogs)
}