ios realm 文件_你如何压缩iOS上的Realm DB?

完全拆除所有检索到的模型访问器确实很棘手,但遗憾的是没有其他方法可以关闭一个领域.

正如您“定期”编写的那样,每个应用程序的启动可能已经足够,具体取决于您的用例.

在启动应用程序时,在专用的自动释放池中打开Realm仍然相对容易,将压缩的副本写入不同的路径并用它替换default.realm文件.

斯威夫特2.1

func compactRealm() {

let defaultURL = Realm.Configuration.defaultConfiguration.fileURL!

let defaultParentURL = defaultURL.URLByDeletingLastPathComponent!

let compactedURL = defaultParentURL.URLByAppendingPathComponent("default-compact.realm")

autoreleasepool {

let realm = try! Realm()

realm.writeCopyToPath(compactedURL)

}

try! NSFileManager.defaultManager().removeItemAtURL(defaultURL)

try! NSFileManager.defaultManager().moveItemAtURL(compactedURL,toURL: defaultURL)

}

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

compactRealm()

// further setup …

return true

}

Swift 3.0

func compactRealm() {

let defaultURL = Realm.Configuration.defaultConfiguration.fileURL!

let defaultParentURL = defaultURL.deletingLastPathComponent()

let compactedURL = defaultParentURL.appendingPathComponent("default-compact.realm")

autoreleasepool {

let realm = try! Realm()

try! realm.writeCopy(toFile: compactedURL)

}

try! FileManager.default.removeItem(at: defaultURL)

try! FileManager.default.moveItem(at: compactedURL,to: defaultURL)

}

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

compactRealm()

// further setup …

return true

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值