Utility App и plist - это подходящий подход к созданию приложения в стиле флэшкарты? - PullRequest
0 голосов
/ 14 июля 2010

Я пытаюсь интегрировать раздел вопросов / ответов в одно из моих приложений.

Я хотел использовать приложение в стиле Utility, где вопрос загружается как Uilable в первом представлении, а ответ загружается в flippedview.

Я надеялся загрузить данные вопросов и ответов из списка и добавить опцию случайного перемешивания, чтобы вопросы можно было перепутать.

Подходит ли здесь метод plist? У кого-нибудь есть опыт создания такого рода приложений? есть ли примеры в Интернете / в книгах, где я мог бы увидеть какой-нибудь исходный код?

Ваша помощь наиболее ценится.

J


Обновление:

ОК - я пытался заставить эту работу.

Вот мой список (DataDetail1.plist):

Root...............................(Array)
........Item 0.....................(Dictionary)
.................Question..........(string)  ///Question text////
.................Answer............(string) ///Answer text/////
........Item 2.....................(Dictionary)
.................Question..........(strings) //Question text////
.................Answer............(strings) //Answer text/////

Я думал, что смогу объявить plist как NSarray:

- (void)viewDidLoad {
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"DataDetail1" ofType:@"plist"]; //Defines path for DATA For ARRAY//
NSArray* tmpArray = [[NSArray alloc] 
                            initWithContentsOfFile:path]; //initialises the contents of the ARRAY with the PLIST"
self.DataList1 = tmpArray; 
[tmpArray release];

Затем назначьте ключ для UILable в первом представлении;

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
Label1.text = [DataList1 objectForKey:Question_KEY];

Именно в этот момент я столкнулся с проблемой - я не могу использовать метод objectForKey с NSArray.

Как мне заставить это работать?

J

приписка

как только это сработает, какой код мне понадобится, чтобы заставить flippedView загружать клавишу «Ответ» из данного элемента в Plist?

1 Ответ

0 голосов
/ 14 июля 2010

Вы можете использовать plist для хранения чего угодно, но проблема в том, что они не масштабируются. Вы должны загрузить весь plist сразу и создать экземпляр всех объектов, которые сериализует plist. Это нормально для нескольких небольших объектов, но очень быстро пожирает вашу память и становится сложным в управлении по мере роста количества, размера и сложности объектов.

Если каждый файл представляет собой всего несколько десятков карточек с текстовыми вопросами и ответом на каждую, тогда plist, вероятно, будет работать нормально. Когда вы наберете большее количество карт и / или начнете добавлять графику, это сломается.

Edit:

Это:

Label1.text = [DataList1 objectForKey:Question_KEY];

... не будет работать. objectForKey: - это метод NSDictionary, а не NSArray. Вы должны получить словарь по определенному индексу массива и отправить это сообщение objectForKey:. Вам нужно что-то вроде:

Label1.text = [[DataList1 objectAtIndex:1] objectForKey:Question_KEY];
...