realm.io writeCopyToPath?逆操作是什么?

时间:2015-09-08 22:04:58

标签: ios swift realm

所以我有一些领域快速的代码:

   let realm = Realm()
   realm.writeCopyToPath(tempfile! , encryptionKey: nil)
   let newasset = CKAsset(fileURL: NSURL(fileURLWithPath: tempfile!, isDirectory: false))

然后我将newasset保存到cloudkit ......

但是当我把它带回来时,

   let defaultPath = Realm().path
   var someError: NSError?
   NSFileManager.defaultManager().removeItemAtPath(defaultPath, error: &someError)
   if someError != nil {
       println("Error removing realm file, \(someError)")
   }
   NSFileManager.defaultManager().copyItemAtPath(asset.fileURL.path!, toPath: defaultPath, error: &someError)
   if someError != nil {
       println("Error copying realm file into place, \(someError)")
   }

它似乎不起作用......我想知道是否有另一种方法可以恢复领域文件并将其放在领域预期的位置?

1 个答案:

答案 0 :(得分:0)

默认Realm文件的默认位置和文件名是default.realm,位于应用程序的Documents目录中。只要您正确地将Realm文件从CloudKit复制到具有正确文件名的该位置,通过调用Realm()访问该文件应该可以直接使用。

听起来你在这里有几点可以测试是否有任何失败:

1)确保正确创建重复的Realm文件。 2)确保文件正确上传到CloudKit,没有失败。 3)确保文件从CloudKit正确返回,没有任何错误。 4)仔细检查将文件从CloudKit复制到默认Realm文件路径是否成功。

如果这一切都不起作用,请告诉我你在具体得到什么样的错误。谢谢,祝你好运!