【问题标题】:create new object template at runtime iPhone在运行时创建新的对象模板 iPhone
【发布时间】:2012-04-21 04:19:51
【问题描述】:

我试图弄清楚如何在运行时创建一个新的对象模板(由用户创建),然后使用该模板创建新对象以填充列表。例如,假设您想要一个联系人列表。用户将创建一个模板,该模板具有 NSMutable 通用对象数组,其中包含姓名、电话、电子邮件等。然后当他们完成创建模板后,他们可以随时根据该模板添加新联系人,而无需重新构建模板。所有模板对象将包含嵌套在自身内部的通用对象,其值设置为不同的数据类型,然后所有这些通用对象存储在另一个仅包含数组的通用对象中。我希望我不会让这听起来太令人困惑......基本上只是在运行时创建自定义对象模板的能力,然后能够使用它们。任何人都知道一个好的方法吗?我想让我的应用程序中的数据存储通用,以便它可以应用于任何人的数据。谢谢。

【问题讨论】:

    标签: iphone objective-c ios xcode data-storage


    【解决方案1】:

    我不确定您的最终目标是什么,但您可以采用“界面构建器”方法。您有构建模板的视图,然后将每个元素转换为 xml 表单。加载它所需要做的就是读取 xml,创建适当的 UI 元素,然后将它们添加到容器视图中的正确位置。这种方法的一个问题是,如果您需要向一个元素发送数据,那么如果您的模板中有多个该类型的元素,则几乎不可能获得正确的元素。您可以使用数组、字典甚至 xml 来存储键(元素的名称)和值(元素,使用 xml 方法不需要这样做)。很抱歉,如果这令人困惑。

    【讨论】:

    • 这听起来可能是视觉方面的好方法。动态创建数据结构以存储创建的对象的最佳方法是什么?我在想可能是嵌套字典或类似的东西,然后使用 xml 模板来了解包含的内容。
    • 解决这个问题的一个好方法是使用字典和数组。我不太确定如何解释这一点,但我会举一个例子:你有一个数组(你的窗口),它包含一个字典列表(它是子视图)。在这些字典中,您将拥有诸如类的字符串、坐标的数组等属性。然后,您将拥有该视图的子视图的数组,依此类推,直到可以表示所有数据。也可以将所有值包装到 NSValues 中以获得更小的存储空间。希望这会有所帮助。
    【解决方案2】:

    在 iOS 上,有几个可行的选项可以在磁盘上读取和写入对象。最著名和使用最广泛的是 Core Data 和 Plist。

    如果您是初学者,我建议您为自定义对象“模板”保存一组属性(可能是字符串?)。请参阅 here 获取教程,并搜索 SO 以了解可能出现的任何其他内容。

    【讨论】:

    • 核心数据可能是一个好方法,我只是从未使用过它,我不确定它有什么可能。我只是想弄清楚如何在运行时创建自定义数据结构,然后从这些自定义结构的数组中存储和检索数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    相关资源
    最近更新 更多