V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拼车信息请发到 /go/cosub 节点。

如果没有发送到 /go/cosub,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
estk
V2EX  ›  iCloud

iOS 开发小白请教一下 iCloud 存储

  •  
  •   estk · 2023-06-10 09:17:56 +08:00 · 2676 次点击
    这是一个创建于 557 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设做个简易笔记 App ,本地用 sqlite 存储,本地的 sqlite 文件可以整个文件备份到 iCloud 吗?
    然后同一个用户登录其它设备,从 iCloud 同步 sqlite 文件到本地
    第 1 条附言  ·  2023-06-10 11:50:59 +08:00
    忘了说,用的是 React Native 开发,考虑到兼容安卓,所以选择 sqlite
    第 2 条附言  ·  2023-06-10 21:50:38 +08:00
    15 条回复    2023-06-10 21:22:53 +08:00
    shawndev
        1
    shawndev  
       2023-06-10 09:47:11 +08:00 via iPhone
    sqlite 要考虑多端登录怎么合并数据?想清楚你同步的是 sqlite 文件,还是 sqlite 里的记录。
    ranleng
        2
    ranleng  
       2023-06-10 09:48:58 +08:00
    可以直接放 CoreData 里吧
    estk
        3
    estk  
    OP
       2023-06-10 10:45:43 +08:00
    @ranleng #2
    CoreData 纯本地,没云端吧?
    James369
        4
    James369  
       2023-06-10 10:47:14 +08:00
    可以支持第三方云同步么,我喜欢自己掌控自己的数据
    estk
        5
    estk  
    OP
       2023-06-10 10:48:28 +08:00
    @shawndev #1
    打算用这种逻辑
    备份时:先将云端拉下来跟本地合并,然后再上传新的
    恢复时:拉下云端,跟本地合并
    db 每个 table 都有 uuid 判断重复

    自用的软件,还在做本地逻辑,先请教能否 iCloud 实现,实在不想搞后端
    estk
        6
    estk  
    OP
       2023-06-10 10:49:00 +08:00
    @James369 #4
    不想用任何后端,包括云数据库,所以才来请教 iCloud
    ranleng
        7
    ranleng  
       2023-06-10 10:51:39 +08:00 via iPhone   ❤️ 1
    @estk coredata 不是可以 iCloud 同步么
    agagega
        8
    agagega  
       2023-06-10 11:06:28 +08:00
    sqlite 当文件备份这个方案我思考过,没有实践,觉得问题可能会很多,数据库文件比较大的话,iCloud Drive 的同步可能不那么可靠。

    另一种方案是用 CloudKit ,可以自己手动用 CloudKit 的 API ,也可以用 Core Data 直接集成,后者的优点是比较方便,不用管很多实现细节,缺点是没有前者可控(还有人说有坑,我用比较少,还没遇到过)
    justin2018
        9
    justin2018  
       2023-06-10 11:08:05 +08:00
    @estk #5

    使用过这种方式实现 iCloud 和本地数据库同步得做好

    CoreData + iCloud 是一个很好的配合 但是 iCloud 没有好用的第三方库 有点坑

    每次需要实现 iCloud 同步的时候 感觉有点痛苦 好在产品都可以正常运行 🤣
    gluttony
        10
    gluttony  
       2023-06-10 11:36:44 +08:00   ❤️ 1
    Core Data + CloudKit 同步已经考虑到了开发者会遇到的很多坑,如果自己同步 SQLite 文件还要重新造轮子。

    v 友 @ranleng 开源的 https://github.com/RanKKI/LawRefBook 就是个同步数据的简单示例,看下项目代码就能入门。
    estk
        11
    estk  
    OP
       2023-06-10 11:50:17 +08:00 via iPhone
    @gluttony #
    用 sqlite 还有一个目的是想兼容安卓
    哦,我忘了说是用 React Native 开发,抱歉
    lyuxiuchen
        12
    lyuxiuchen  
       2023-06-10 13:09:43 +08:00 via iPhone
    realm 可以试一下,安卓 ios 都可以用
    estk
        13
    estk  
    OP
       2023-06-10 17:06:38 +08:00 via iPhone
    @lyuxiuchen #12
    这个云数据库看起来不错,不知大陆速度如何
    lyuxiuchen
        14
    lyuxiuchen  
       2023-06-10 20:25:51 +08:00 via iPhone
    @estk 没测试过,我用的 realm 本地库+cloudkit 只做了 ios 端。
    Liang1124
        15
    Liang1124  
       2023-06-10 21:22:53 +08:00
    react-native-sqlite-2 默认是没有存到 cloud 的,但是理论上是可以的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5201 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.