我正在做一个项目,它将包含大约500种不同生物的阵列。每种生物都有6种不同的属性,比如名字、年龄、速度等等。
我意识到我会花很多时间写出每个生物的每个属性,但我不确定是否有更合适(也更有效)的地方来存放如此多的信息。起初,我开始在viewDidLoad方法中编写数组的一些示例,但我认为如果在单独的头文件中声明数组本身,可能会更有条理。这有可能吗?
creatureList = [NSMutableArray arrayWithCapacity:25];
Creature *creature = [[Creature alloc] init];
creature.name = @"Edward";
creature.age = 24;
creature.gender = @"Male";
creature.attack = 75;
creature.defense = 50;
creature.speed = 90;
creature = [[CreatureObject alloc] init];
creature.name = @"Bruno";
creature.age = 39;
creature.gender = @"Male";
creature.attack = 60;
creature.defense = 100;
creature.speed = 75;
[creatureList addObject:creature];..。以此类推。我现在已经将数组限制为25个生物,直到我发现这些信息应该存储在哪里以及如何存储。
发布于 2014-03-11 13:44:46
显然,我不知道您的项目的整个范围,但处理这种类型的结构化数据的最合适方法是将其存储在一个数据库中,该数据库易于维护,并且不会硬编码到您的应用程序中。您可以使用本地数据库(核心数据,甚至只是结构化文本文件)或远程数据库(mysql,mongodb,许多其他数据库),它们可以在运行时动态加载您的生物列表(或者在需要时延迟加载)。
发布于 2014-03-11 13:45:27
你绝对应该在CoreData中做到这一点-如果你以前从来没有做过这件事,这是一个相当不错的学习曲线。Ray Wenderlich一如既往地是一个开始使用它的好地方,但是如果你真的想在某个类中声明一个数组,我建议实际上为这个数组创建一个完全独立的类,而不仅仅是把它放在你视图中的其他地方。
你也可以查看属性列表(这可能是最简单的选择),特别是在应用程序启动后不需要修改数据的情况下。下面是实现this的一个很好的演练
发布于 2014-03-11 13:46:14
这是非常低效的,而且你很难维护你的代码。
我会把所有的属性放在一个文件中( .plist,csv,文本,数据库,你想要的任何东西),让你的类读取这个文件,并为文件中找到的每个项目实例化一个CreatureObject (其中项目取决于你的文件,例如,在csv上,一个项目将是文件中的一行)。
在伪代码中
open config file
for (each line in file)
{
Creature x = parse line
arrayofCreatures addObject:x
} https://stackoverflow.com/questions/22317307
复制相似问题