这可能与NSDictionary一起使用吗?或者我应该使用其他东西?

时间:2010-08-19 06:53:58

标签: iphone objective-c nsdictionary

我要做的是创建一个文本字符串数组,我想从这个数组中选择一个随机文本字符串,我通常可以使用数组轻松完成。但是,我也希望能够将它们分类,当我选择一个随机的类别时,我想知道它是什么类别,并根据它所属的类别来决定它的不同之处。我我想我可以使用NSDictionary中的键来决定类别,就像将类别中的所有条目设置为具有相同的键一样。但后来我不知道如何从该字典中检索一个随机的,然后知道密钥是什么。我从来没有使用过NSDictionary所以我对它知之甚少,所以也许我刚才所说的没有任何意义。

我也可能以完全错误的方式接近这一点,所以如果你对如何做我所描述的事情有任何其他建议,我会对此持开放态度,如果你有一个非常详细的代码答案,那么这是可能的。

1 个答案:

答案 0 :(得分:0)

我只想用数字填充数组,即

{
  { category = Animals,
    name = Cat },
  { category = Vehicles,
    name = Helicopter },
  { category = Foods
    name = Pie },
  { category = Animals,
    name = Zebra }
}

然后从该数组中随机选择。

对于程序化示例:

theArray = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Cat", @"name", nil],
                                     [NSDictionary dictionaryWithObjectsAndKeys:@"Vehicles", @"category", @"Helicopter", @"name", nil],
                                     // ...
                                     [NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Zebra", @"name", nil],
                                     nil];

// ...

randomDict = [theArray objectAtIndex:(rand() % [theArray count])];
NSString *name = [randomDict objectForKey:@"name"];
NSString *category = [randomDict objectForKey:@"category"];
相关问题