Я хочу иметь возможность сохранять данные внутри удаленных записей в приложении Couchbase Lite. По the couchbase lite documentation я должен быть в состоянии сохранить атрибут deleted_at
вместе со всеми текущими атрибутами с помощью этого кода (слегка измененный для новой эры Swift синтаксисом):Сохранять атрибуты в удаленных документах couchbase
do {
try document.update { (newRev) -> Bool in
newRev.isDeletion = true
newRev["deleted_at"] = currentTimeStamp
print("Document deleted at: \(document["deleted_at"])")
// prints "Document deleted at: nil"
print("Revision deleted at: \(newRev["deleted_at"])")
// prints "Revision deleted at: Optional(2016-03-14)"
return true
}
} catch let error as NSError {
self.handleError(error)
}
Однако, если я пытаюсь получить доступ к атрибутам позже они не существуют:
print("Deleted: \(document.isDeleted)")
// prints "Deleted: Optional(true)"
print("Deleted at: \(document["deleted_at"])")
// prints "Deleted at: nil"
Я уверен, что это должно напечатать метку времени, связанное с атрибутом deleted_at
.
Я подумал, что, может быть, couchbase не позволяет доступ к данным из удаленных записей, но восстановление записи не позволяет получать доступ либо:
do {
try document.update { (newRev) -> Bool in
newRev.isDeletion = false
print("Document deleted at: \(document["deleted_at"])")
// prints "Document deleted at: nil"
print("Revision deleted at: \(newRev["deleted_at"])")
// prints "Revision deleted at: nil"
return true
}
} catch let error as NSError {
self.handleError(error)
}
print("Deleted: \(document.isDeleted)")
// prints "Deleted: Optional(false)"
print("Deleted at: \(document["deleted_at"])")
// prints "Deleted at: nil"
Есть ли что-то я могу сделать, чтобы получить эту работу?
показывает ли свойство внутри блока обновления? – borrrden
@borrrden Да, да. Я обновил вопрос, чтобы отразить это. – caleb
Я на самом деле имел в виду второй блок обновления, а не первый. – borrrden