2014-01-19 52 views
0

這是最有效的方法嗎?NSDictionary vs NSArray - 聖經的書籍,章節和經文

我想存儲所有的聖經書籍(66),每本書的章節數和每章的詩節數。

然後使用這些值選擇

  1. 用戶選擇的書。我將章節選擇器設置爲適當的範圍(1-xx)
  2. 用戶選擇章節。我設置的詩句選擇是我想這將是最好創建適當的範圍內(1-XX)

於是兩個NSArrays(書籍,章節)

而且一個的NSDictionary(詩)

使用從書籍的索引查找章(範圍:1-XX) 使用從書籍股指雙雙&章節的號碼查找經文(範圍1-XX)的數量

有沒有更好的辦法存儲這個結構? 我想確保它是最快的

回答

0

你可以下課,在你的viewController.m文件的頂部添加這段代碼。

interface BOOK : NSObject 
@property NSString *bookName; 
@property NSInteger numberOfChapters; 
@property NSArray *verseArray; 
@end 

@implementation BOOK 

@end 

所有你只需要一個數組。 @property NSMutableArray * books; books = [NSmutableArray array]; 例如創建一本書。

BOOK *b =[[BOOK alloc] init]; 
b.bookName [email protected]"some name"; 
b.numberOfChapters =3; 
b.verseArray [email protected][@10,@11,@14]; 
[books addObject:b]; // this way use for loop, and objects to your array. 

所以,當有人選擇行你選擇器,使用它的索引來獲取圖書

Book *selectedBook =books[index]; 
+0

因此,對於我的使用,我真的需要創建一個BOOK對象。這就說得通了。 但我仍然需要將所有可能的值存儲在我的代碼中。什麼是最好的方式來存儲這些,所以我可以根據需要檢索一個? 其中66個 bookName = @「some name」; numberOfChapters = 3; verseArray = @ [@ 10,@ 11,@ 14]; – user3212508

+0

更新了答案。如果您仍然有任何疑問,請隨時在此發佈。 – santhu

0

這一切都將取決於你打算如何在代碼中使用的數據。例如,如果您要呈現內容列表,並且用戶只需單擊書名,則可以使用數組,因爲您知道其中的順序。如果用戶將輸入名稱他們想要的章節,然後字典會更合適,因爲你會按名稱查找章節。

就效率而言,訪問速度可以忽略不計,因爲每個數組或字典中的項目很少。聖經中的書籍少於1,000本,每本書少於1,000章,每章少於1,000章。您的代碼不會處於訪問數千個項目的嚴密循環中,因此速度方面,它對此用途沒有任何影響。