Я изучаю программирование Cocoa Objective-C для OS X и объектно-ориентированное программирование в целом, поэтому я здесь большой новичок, поэтому мой вопрос немного общий, и я думаю, что ответ на этот вопрос - это просто «опыт», ; однако мне любопытно, есть ли какой-то путь знаний, чтобы понять, какие методы в разных классах лучше или, возможно, необходимы для выполнения поставленных задач.Откуда вы знаете, какие методы использовать для задачи?
Например, в руководстве по программированию мне предписано создать программу на основе документа, а класс документа содержит массив для хранения данных, а следующий метод привязан к кнопке для создания новой записи в массиве:
- (IBAction)insertItem:(id)sender {
if (!theItems) {
theItems = [NSMutableArray array];
}
[theItems addObject:@"Double-click to edit."];
[theTableView reloadData];
[self updateChangeCount:NSChangeDone];
}
Массив «theItems», и его данные представлены в объекте TableView. Я понимаю, что шаги здесь добавляют новую строку в массив, а затем обновляют таблицу для ее отображения, а затем устанавливают документ в несохраненное состояние.
То, что я не получаю, - это то, как можно было бы знать об этих конкретных шагах и методах. Интуитивно кажется, что можно просто добавить элементы в массив, и это все, что требуется для того, чтобы новые значения просто отображались в представлении таблицы, для которого массив является источником данных, поэтому как можно было бы знать, что tableView понадобится для обновления с помощью вызова «reloadData»? Я могу видеть, как кто-то (я) выяснил это методом проб и ошибок, но есть ли какой-то быстрый ресурс или руководство (т. Е. Какая-то быстрая блок-схема) либо в XCode, либо в другом месте, что указывает на представление таблицы, что это должно быть требуемое действие для отображения новой записи?
Если я смотрю ссылку на класс NSTableView от Apple, в обзоре утверждается, что вы «изменяете значения в источнике данных и позволяете отражать изменения в представлении таблицы», которые предполагают, что представление обновляется автоматически, поэтому требование называть «reloadData» на представлении кажется немного неясным.
Чтобы добавить ... еще одна такая неясная особенность здесь заключается в том, что для этого проекта вы можете дважды щелкнуть по представлению таблицы, чтобы отредактировать запись после ее добавления. Хотя это здорово, я никогда явно не программировал его и не мог найти нигде, что бы это обозначало как свойство табличного представления, поэтому выяснение его просто было бы пробным и ошибочным подходом. Если бы мне не рассказали об этом в руководстве по программированию, я бы искал какой-то метод, который бы принял щелчок мыши (или что-то подобное) для вызова этого действия ... и по существу был потерян. – Topher