Нужно ли иметь \n
в качестве нового идентификатора строки? CKAsset это путь, вам просто нужно:
- создать файл
- создать актив с URL-адресом файла
- сохранить его в базу данных
- удалить временный файл впоследствии.
Когда вы получаете запись из CloudKit:
- доступа это путь к файлу
- загрузки данных с использованием
NSFileManager
- расшифровывает данные (это использует
NSString
, что скука, но дон не знаю другого способа)
Записать на фото:
let str = "sample \n string save to file"
if let url = NSURL(fileURLWithPath: NSTemporaryDirectory())?.URLByAppendingPathComponent("tempFile", isDirectory: false) {
if str.writeToURL(url, atomically: true, encoding: NSUTF8StringEncoding, error: nil) {
let asset = CKAsset(fileURL: url)
let record = CKRecord(recordType: "TextAsset")
record.setValue(asset, forKey: "text")
CKContainer.defaultContainer().publicCloudDatabase.saveRecord(record) { savedRecord, error in
if error != nil {
println(error)
} else {
println(savedRecord)
}
// do this in completion closure, otherwise the file gets deleted before uploading
NSFileManager.defaultManager().removeItemAtURL(url, error: nil)
}
}
}
нагрузки запись:
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "TextAsset", predicate: predicate)
CKContainer.defaultContainer().publicCloudDatabase.performQuery(query, inZoneWithID: nil) { queryRecords, error in
if let records = queryRecords {
for record in records {
let asset = record.valueForKey("text") as! CKAsset
if let content = NSFileManager.defaultManager().contentsAtPath(asset.fileURL.path!) {
let text = NSString(data: content, encoding: NSUTF8StringEncoding)
println(text)
}
}
}
}
Не забывайте обрабатывать ошибки должным образом, это просто витрина образец кода.
Привет, это будет очень глупый вопрос, но в какой программе я храню массовый текст? – user3136022
Идея заключается в том, что я загружаю текст непосредственно в базу данных облачных наборов. Я фактически не буду сохранять какие-либо данные в приложении и загружать его. – user3136022
Вы сохраняете текст в файл, вызывая 'str.writeToURL', чтобы получить URL-адрес для создания' CKAsset'. После сохранения в облаке вы удаляете его при завершении закрытия с помощью 'NSFileManager.defaultManager(). RemoveItemAtURL (url, error: nil)' – libec