【问题标题】:Randomly select an instantiation of a class and display it?随机选择一个类的实例并显示它?
【发布时间】:2016-03-18 20:54:21
【问题描述】:

目标:随机选择包含人员的类的成员,并在警报中显示信息。

这就是我正在做的事情:我有一个名为 Entrepreneurs 的课程。类内部是名称、净值等变量。我已经用几个 Entrepreneurs 实例化了该类,如下所示:

   //Class for entrepreneurs
class Entrepreneurs {
    var name:String?
    var netWorth = (0.0, "")
    var company:String?
    var summary: [String]
    var age: Int?
    init() {
        name = ""
        company = ""
        summary = [""]
        age = 1;
    }
}

 let markZuckerBerg = Entrepreneurs()
    markZuckerBerg.name = "Mark Zuckerberg"
    markZuckerBerg.age = 19
    markZuckerBerg.company = "Facebook"
    markZuckerBerg.netWorth = (35.7, "Billion")

我有几个实例化(超过 5 个),现在我想从 Entrepreneur 类中随机访问一个成员并显示其属性。

我知道我需要一个数组来保存班级成员,但我认为将班级的每个成员添加到一个数组中并不是最有效的方法,因为我计划最终添加数百名企业家。

有什么建议吗?

(附带问题:这是构建此类问题的最佳方式吗?换句话说,如果我的目标是列出包含企业家信息的企业家列表,并且我希望它们随机显示在屏幕上手机作为警报,创建一个企业家阶层是最好的方式吗?)

【问题讨论】:

  • 创建一个数组。甚至不要认为有更好的解决方案。为企业家创建一个班级很好,但实际数据应该在外部文件中 - 例如JSON 或 XML,而不是对它们进行硬编码。
  • 哦,对了,我应该将它以 xml 格式保存在不同的文件中,即使我对其进行硬编码,我也应该在 xml 中对其进行 har 编码,因为没有我能找到的确切信息的 api需要

标签: arrays swift class random


【解决方案1】:

在我看来,您想从一组对象中随机选择对象。为此,您需要一个数组和一个介于 0 和数组中元素数量之间的随机数。

代码

let array: [Entrepreneurs] = [a,b,c,...]
let random: Int = Int(arc4random_uniform(UInt32(array.count)))
let selection: Entrepreneurs = array[random]

至于向他们展示并提醒我需要有关该问题的更多详细信息。

【讨论】:

  • 嘿科迪,我不确定我是否理解您的解决方案。我同意我们需要创建一个数组来保存企业家类的成员或对象。在这里,您声明了一个 [Entrepreneurs] 类型的数组,并将其 = [a, b, c]。但是 a、b、c 中到底应该放什么?我不想在数组中手动​​添加每个企业家,例如扎克伯格,这将花费很长时间,我计划最终在这里拥有数百名企业家。
  • 您能否将我的答案标记为正确。是的 a,b,c 是企业家的实例。另外我认为你应该把它变成一个结构而不是一个类。我知道“手动”将它们添加到数组中很糟糕,但在某些时候你必须将它们输入到机器中。
  • @ArbabRizvi 你坚持什么?
猜你喜欢
  • 1970-01-01
  • 2017-05-23
  • 2019-12-03
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 2014-07-09
  • 1970-01-01
相关资源
最近更新 更多