登录时多个用户访问的核心数据值(iOS Swift)

Posted

技术标签:

【中文标题】登录时多个用户访问的核心数据值(iOS Swift)【英文标题】:Core Data Values Accessed by Multiple Users when logged in (iOS Swift) 【发布时间】:2017-05-04 07:15:10 【问题描述】:

我有一个应用程序,其中 UITableView 用于表示朋友列表。现在,此表由存储在核心数据中的值更新,我正在通过 Parse 将朋友值下载到核心数据。我没有直接访问 Parse 来更新 tableView,而是决定先更新 Core Data,然后再更新 tableView,因为我需要应用程序其他部分的朋友信息,并且认为使用 Core Data 比调用 Parse 更有效一次又一次。一切正常!

但是,我的应用程序在用户使用该应用程序之前有一个登录系统。当我创建另一个虚拟用户进行测试时,我发现我的实际帐户存储在 Core Data 中的朋友值正在用于更新朋友列表 tableView!实际上 tableView 应该是空的(新用户)。

我不确切知道 Core Data 是如何工作的,但我认为它使用设备内存的一部分来存储实体。我的问题是,是否可以使用 Core Data 存储与登录同一设备的其他用户无法访问的特定用户相关的私人信息?还是应该在需要信息时继续调用 Parse?

希望你们能理解我的问题,谢谢!

【问题讨论】:

【参考方案1】:

ios 不是多用户系统。您的应用程序将其文件存储在沙盒文件夹结构中,并且此沙盒独立于您在应用程序中实现的任何用户登录。

当新用户登录时(或者,如果您愿意,当用户注销时),您可以删除存储在 Core Data 中的任何您不希望其他用户访问的数据。

【讨论】:

【参考方案2】:

解析可以通过Local Storage离线保存数据或者通过Cache Policy缓存请求

它们比创建您自己的数据库(通过 CoreData)快得多。

【讨论】:

以上是关于登录时多个用户访问的核心数据值(iOS Swift)的主要内容,如果未能解决你的问题,请参考以下文章

多个用户访问相同的用户默认数据 Swift

存在登录页面时,iOS swift 可访问性应该失败

iOS Swift 应用程序:如何知道当前登录的用户总数? [关闭]

如何在 IOS Swift 中获取核心数据中的多对多关系?

swift中的核心数据值访问错误

Firestore 覆盖 iOS Swift 中已存在的数据