【问题标题】:Reading a specific line from a Plist从 Plist 中读取特定行
【发布时间】:2012-12-17 01:39:35
【问题描述】:

您好,我一直在寻找,但似乎无法找到我的问题的答案。我几乎没有编程经验,尤其是 Objective-C。
在我的应用程序中有一个 plist 带有一定数量的字符串。当用户点击一个按钮时,程序会计算 plist 中字符串的数量,在该范围内创建一个随机数,并应该读取 plist 中具有该特定数字的行。 假设 plist 中有 20 个字符串,并且应用程序生成了数字 5,那么应用程序应该读取 plist 中的第 5 个字符串。

有没有办法做这样的事情,或者有没有另一种更有效的方法来完成这件事?任何帮助是极大的赞赏。谢谢。

编辑: 在我的 .h 文件中,我有

NSMutableArray* myArray;
int plistCount;
int randomNumber; 
}
@property (nonatomic, retain) NSMutableArray* myArray;

在我的 .m 文件中,我有

NSString *path = [[NSBundle mainBundle] pathForResource:@"myplist" ofType:@"plist"];
    NSMutableArray* tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
    self.myArray = tmpArray;
plistCount=[self.resorts count];
randomNumber=arc4random() % plistCount;

我不知道从这里去哪里。

【问题讨论】:

  • 请发布您的代码尝试...
  • 是的。对此感到抱歉。

标签: objective-c string random plist


【解决方案1】:
NSString * randomString = self.myArray[arc4random_uniform(self.myArray.count)];

上面的代码是从self.myArray中随机选择一个元素。

arc4random_uniform 生成一个介于 0 和参数(排除)之间的数字,因此使用 self.myArray.count 作为边界,您将获得数组的有效随机索引。

注意

您必须明确地检查数组永远不会为空,才能使上述代码正常工作,因为 arc4random_uniform(0) 返回0,因此如果是空数组,它将生成NSRangeException

【讨论】:

  • 我一定会尽快尝试。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多