2012-12-17 72 views
0

嗨我一直在寻找所有,似乎无法找到我的问题的答案。我几乎没有编程经验,特别是Objective-C。
在我的应用程序中有一个plist与一定数量的字符串。当用户点击一个按钮时,程序会计算plist中的字符串数量,在该范围内创建一个随机数字,并且应该读取具有该特定数字的plist行。 说出如果plist中有20个字符串,并且该应用程序生成数字5,那么该应用程序应该读取plist中的第5个字符串。从Plist中读取特定行

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

编辑: 在我.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

是的当然。对于那个很抱歉。 – Bryman

回答

0
NSString * randomString = self.myArray[arc4random_uniform(self.myArray.count)]; 

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

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

注意

你必须明确地检查数组是为了让上面的代码工作从来没有空,因为 arc4random_uniform(0)回报0,因此在一个空数组的情况下,它会生成一个NSRangeException

+0

我一定会尽快尝试。感谢您的帮助! – Bryman