2012-12-17 96 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