这是最有效的方法吗?
我想存储所有圣经书籍(66),每本书中章节的数量以及每章中的经文数量。
然后将这些值用于选择器
所以我认为最好创建两个NSArrays(书籍,章节)
一个NSDictionary(经文)
使用Books中的索引查找章节数(范围1-xx) 使用Books&中的两个索引。章节查找经文数量(范围1-xx)
有没有更好的方法来存储这个结构? 我想确保它是最快的
答案 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节。你的代码不会在一个紧密的循环中访问成千上万的项目,因此速度方面,它不会对此用途产生任何影响。