使用 Swift 3 显示来自核心数据的随机数据

Posted

技术标签:

【中文标题】使用 Swift 3 显示来自核心数据的随机数据【英文标题】:Showing random data from core-data using Swift 3 【发布时间】:2017-04-09 15:43:31 【问题描述】:

我需要一些帮助,使用 Swift 3、Xcode 8.3.1 从核心数据中获取随机数据。我目前有一个应用程序,它使用用户输入的数据在 tableview 中创建一个列表。(用户输入一个名字并为那个人拍照)实体“朋友”拥有属性“名字”、“图像”。

这个应用程序的第一个版本只是一个名称,我将使用 arc4random 随机更新一个带有名称的标签,该标签在一个模态呈现的 VC 上单击按钮。这些名称只是存储在一个数组中。 这个版本包含一张图片,所以我决定尝试一下 core-data(以前从未使用过),现在我被困在我的随机选择按钮上。目前,该应用程序将很好地存储数据,然后检索它并在表格视图中按字母顺序显示每个人以及他们的图像。当一个新人被提交时,信息被存储并且表格视图更新。

我需要显示一个随机选择的名称及其图像,但我不知道如何执行此操作,并且研究未能完成。

如果有更好的方法来存储图像和名称而不是核心数据,我也愿意更改。该应用程序可以存储 20-80 个不同的名称。它永远不会用于存储更多的东西。

【问题讨论】:

【参考方案1】:

您可以从上下文中获取您的项目,这将为您提供一个对象数组。现在您只需使用您最喜欢的随机函数来获取该数组的随机索引。然后在该索引处使用一个对象。

【讨论】:

听起来是个不错的计划。我如何在 Swift 代码中执行这个:) 我对编码很陌生,不知道如何实现你刚才所说的。 对不起,我似乎无法让格式化工作 :( func randomImage() -> MyImage? let fetchRequest = NSFetchRequest(entityName: "MyImage") var images : Array = [] do images = try managedContext.fetch(fetchRequest) catch let error as NSError print("Could not fetch. (error), (error.userInfo)") return nil 保护图像。 count > 0 else return nil let randomIndex = arc4random_uniform(images.count) return images[arc4random_uniform(images.count)];

以上是关于使用 Swift 3 显示来自核心数据的随机数据的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3.0 - 核心数据 / 意外发现 nil

预览因核心数据查找而失败,但在 Swift 5 / Core Data / FetchRequest 中使用随机值

计量︱时间序列数据检验方法总结

Swift UI:使用数组中的随机元素更新视图

Swift 3 - 从核心数据中获取价值

来自核心数据多对多关系的随机实体