nsdictionary vs nsarray-圣经的书籍,章节和经文



这是最有效的方法吗?

我想存储圣经的所有书籍(66),每本书中的章节数量以及每一章中的经文数量。

然后将这些值用于选择器

  1. 用户选择这本书。我将章节选择器设置为适当的范围(1-xx)
  2. 用户选择本章。我将经文选择器设置为正确的范围(1-xx)

所以我认为最好创建两个NsArrays(书籍,章节)

和一个nsdictionary(verses)

使用书籍中的索引查找章节数(范围1-XX)使用书籍&查找经文数量(范围1-XX)

的章节

是否有更好的方法来存储此结构?我想确保它是最快的

所有这些都取决于您计划如何在代码中使用数据。例如,如果您要介绍一张目录,并且用户只需单击书名在他们想要的一章中,字典将更合适,因为您会以名称查找本章。

就效率而言,访问速度可以忽略不计,因为每个数组或字典中的项目很少。圣经中只有不到1,000本书,每本书中不到1,000章,每章中的经文不到1,000篇。您的代码不会陷入困境的数千个项目,因此,从速度方面,对于此用途,它不会有任何影响。

您可以在班级下方,将此代码添加到 viewController.m file。

的顶部。
interface BOOK : NSObject
@property NSString *bookName;
@property NSInteger numberOfChapters;
@property NSArray *verseArray;
@end
@implementation BOOK
@end

您只需要一个数组。@property nsmutablearray *书籍;books = [nsmutablearray阵列];例如,创建一本书。

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

所以,当有人选择一行时,在您的选择器中,使用其索引获取书

Book *selectedBook =books[index];

最新更新