NSDictionary与NSArray - 圣经的书籍,章节和经文

时间:2014-01-19 16:27:56

标签: ios objective-c nsarray nsdictionary

这是最有效的方法吗?

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

然后将这些值用于选择器

  1. 用户选择该书。我将章节选择器设置为适当的范围(1-xx)
  2. 用户选择章节。我将诗歌选择器设置为适当的范围(1-xx)
  3. 所以我认为最好创建两个NSArrays(书籍,章节)

    一个NSDictionary(经文)

    使用Books中的索引查找章节数(范围1-xx) 使用Books&中的两个索引。章节查找经文数量(范围1-xx)

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

2 个答案:

答案 0 :(得分:0)

您可以在课堂下面,将此代码添加到 viewController.m 文件的顶部。

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

@implementation BOOK

@end

你所拥有的只是一个阵列。 @property NSMutableArray *书籍; books = [NSmutableArray array]; 例如,创建一本书。

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];

答案 1 :(得分:0)

这一切都取决于您计划如何在代码中使用数据。例如,如果您要提供目录,并且用户只需单击书籍的名称,那么您可以使用数组,因为您知道它们所处的顺序。相反,如果用户将输入名称他们想要的章节,然后字典会更合适,因为你会按名称查找章节。

就效率而言,访问速度可以忽略不计,因为每个数组或字典中的项目都很少。圣经中的书籍少于1,000本,每本书的章节少于1,000章,每章不到1000节。你的代码不会在一个紧密的循环中访问成千上万的项目,因此速度方面,它不会对此用途产生任何影响。