您好我一直在寻找,似乎无法找到我的问题的答案。我对编程的经验很少,尤其是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;
我不知道从哪里开始。
答案 0 :(得分:0)
NSString * randomString = self.myArray[arc4random_uniform(self.myArray.count)];
上面的代码是从self.myArray
中选择一个随机元素。
arc4random_uniform
生成一个介于0和参数(排除)之间的数字,因此使用self.myArray.count
作为绑定,您将获得该数组的有效随机索引。
注意强>
您必须明确检查数组是否永远为空才能使上述代码正常工作,因为
arc4random_uniform(0)
会返回0
,因此如果是空数组,则会生成NSRangeException
。