У меня есть один MutableArray (NSMutableArray * NoteBook;), в котором я хотел бы хранить Notepages (я установил объект с именем NotePage.m, который просто содержит один NSString * noteText и метод setNoteText). У меня также есть целое число для отслеживания моих страниц (NSUInteger currentPageCounter;).
Я запускаю свою маленькую программу, настраивая новый экземпляр NotePage:
NotePage *newPage = [[NotePage alloc] init];
[newPage setNoteText:@"Sample Text for a certain page..."];
Затем я копирую эту * newPage 3 раза в свой изменяемый массив NoteBook:
[self.NoteBook insertObject:newPage atIndex:(self.currentPageCounter)];
Это даст мне 3 страницы, с индексами 0,1,2. Все идет нормально. Все работает великолепно. Но теперь приходит враг, UITextView. Прежде всего, я хотел бы отобразить содержимое страницы в моей записной книжке в UITextView. Поэтому я сделал это для синхронизации одного раздела в MutableArray (например, страницы с индексом 0) с UITextView, который работает нормально:
NotePage *thisPage = [self.NoteBook objectAtIndex:self.currentPageCounter];
TextViewNote.text = thisPage.noteText;
Проблема, однако, заключается в том, что если я хочу отредактировать свой UITextView и синхронизировать обновленный текст с MutableArray. Вот где происходит сбой ... Я закодировал это в отдельном методе, который можно щелкнуть, как только пользователь закончит редактирование UITextView:
-(IBAction) savePage
{
NSString *tempString;
tempString = [NSString stringWithFormat:@"%@",TextViewNote.text];
NotePage *newPage = [[NotePage alloc] init];
[newPage setNoteText:tempString];
[self.NoteBook insertObject:newPage atIndex:(self.currentPageCounter)]; // e.g. at index 0 for page 1
[self.NoteBook removeObjectAtIndex:(currentPageCounter+1)]; // i.e. this is to remove the old page 1 which used to be at index 0 but now is at index 1
[self syncTextView];
[self syncCounter];
}
Я думаю, что есть менее громоздкий способ (я все еще новичок ...) просто заменить объект с определенным индексом в изменяемом массиве. В настоящее время он просто рухнет, как только я попытаюсь перейти к следующей позиции индекса, которая, очевидно, больше не найдена.
Спасибо за любые идеи!