Я пытаюсь получить данные о 1220 вершинах и сохранить их в файл iPhone. Проблема, с которой я столкнулся, заключается в том, что мне не удалось получить захваченные данные и правильно записать их в структуру JSON.
У меня есть:
struct CaptureData {
var vertices: [SIMD3<Float>]
var verticesFormatted : String {
let v = "<" + vertices.map{ "\($0.x):\($0.y):\($0.z)" }.joined(separator: "~") + "~t:\(String(Double(Date().timeIntervalSince1970)))>"
return "\(v)"
}
var jsonDict:Dictionary<String, Any> = [
"facetracking_data" : "1",
"info" : [
"frame" : "0",
"timestamp" : 12345,
"vertices" : [
"x" : "0.1",
"y" : "0.2",
"z" : "0.3"
]
]
]
var jsonData : Data {
let data = try! JSONSerialization.data(withJSONObject: jsonDict, options: .prettyPrinted)
return data
}
}
Мне удалось распечатать некоторые данные, используя print (данные), например:
SIMD3 (0,018364782, -0,043627884, 0,0480636), SIMD3 (-0,01794959, -0,04421088, 0,04891427), SIMD3 (-0,019180747, -0,0457206996, 0,04) jsonDict: [«facetracking_data»: «1», «info»: [«frame»: «0», «timestamp»: 1590426140.3919969, «vertices»: [«x»: «0,1», «y»: «0,2» , "z": "0.3"]]])
Я пытаюсь записать захваченные данные и сохранить их в формате JSON, нажав одну кнопку:
@IBAction func saveButtonTapped(_ sender: UIButton) {
guard let data = getFrameData() else {return}
let jsonDataString = String(decoding: data.jsonData, as: UTF8.self)
let file = "\(UUID().uuidString).txt"
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = dir.appendingPathComponent(file)
do {
try data.write(to: fileURL, atomically: false, encoding: .utf8)
print(data)
}
catch {
print("Error: \(error)")
}
}
Мне не удалось попробовать data.write (to: fileURL, atomically: false, encoding: .utf8), чтобы это работало, поскольку оно возвращает ошибку ('data' не имеет члена 'write'), и я не совсем уверен, как чтобы получить захваченные данные и записать их в мою определенную структуру JSON ...