Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在运行时创建新的对象模板_Iphone_Objective C_Ios_Xcode_Data Storage - Fatal编程技术网

Iphone 在运行时创建新的对象模板

Iphone 在运行时创建新的对象模板,iphone,objective-c,ios,xcode,data-storage,Iphone,Objective C,Ios,Xcode,Data Storage,我试图弄清楚如何在运行时创建一个新的对象模板(由用户创建),然后使用该模板创建新对象以填充列表。例如,假设您想要一个联系人列表。用户将创建一个模板,该模板包含一个包含姓名、电话、电子邮件等通用对象的NSMutable数组。然后,当他们创建完模板后,他们可以随时根据该模板添加新联系人,而无需重建模板。模板对象将由嵌套在自身内部的通用对象组成,其值设置为不同的数据类型,然后所有这些通用对象存储在另一个仅包含数组的通用对象中。我希望我没有让这听起来太混乱。。。基本上只是能够在运行时创建自定义对象模板,

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

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

在iOS上,有几种可行的选项可用于向磁盘读取和写入对象。最著名和最广泛使用的是核心数据和PLIST


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

这听起来可能是一个很好的视觉方面的方法。动态创建数据结构以存储创建的对象的最佳方法是什么?我在想可能是嵌套字典或类似的东西,然后使用xml模板来了解包含的内容。一个好方法是使用字典和数组。我不确定如何解释这一点,但我将使用一个示例:您有一个数组(您的窗口),它包含一个字典列表(它是子视图)。在这些字典中,您将拥有诸如类的字符串、坐标的数组等属性。然后,将为该视图的子视图创建一个数组,依此类推,直到可以表示所有数据。还可以将所有值包装到NSValues中,以获得更小的存储空间。希望这能有所帮助。核心数据可能是一个很好的方法,我只是从来没有使用过它,我不确定它能带来什么。我只是想弄清楚如何在运行时创建自定义数据结构,然后从这些自定义结构的数组中存储和检索数据。