NSKeyedArchiver возвращается 0/1 для Bools - PullRequest
0 голосов
/ 25 апреля 2020

NSKeyedArchiver возвращает 0/1 вместо True False для Bools.

На игровой площадке:

import UIKit

let data : [String: Any] = ["test": false]

let documentURL = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first
let filePath = "MyArchive.data"
let fileURL = documentURL?.appendingPathComponent(filePath)

// Archive
if let dataToBeArchived = try? NSKeyedArchiver.archivedData(withRootObject: data, requiringSecureCoding: true) {
    try? dataToBeArchived.write(to: fileURL!)
}

// Unarchive
if let archivedData = try? Data(contentsOf: fileURL!),
    let myObject = (try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(archivedData)) as? [String:Any] {
    myObject
}

результат: [ "test": 0]

Я не использую свой собственный класс / кодер. Я просто хочу использовать [String:Any]. Типы неизвестны, поэтому я использую Any.

...