2014-10-07 4 views
-2

Я изучаю программирование 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» на представлении кажется немного неясным.

+0

Чтобы добавить ... еще одна такая неясная особенность здесь заключается в том, что для этого проекта вы можете дважды щелкнуть по представлению таблицы, чтобы отредактировать запись после ее добавления. Хотя это здорово, я никогда явно не программировал его и не мог найти нигде, что бы это обозначало как свойство табличного представления, поэтому выяснение его просто было бы пробным и ошибочным подходом. Если бы мне не рассказали об этом в руководстве по программированию, я бы искал какой-то метод, который бы принял щелчок мыши (или что-то подобное) для вызова этого действия ... и по существу был потерян. – Topher

ответ

1

Ищите направляющие. В online class reference for NSTableView есть раздел наверху, называемый «Путеводители компаньонов». Для NSTableView в нем перечислены Table View Programming Guide for Mac. (В предварительных документах 10.10, руководства перечислены в разделе «Связанная документация» на левой боковой панели.)

Я мог бы поклясться, что эта же информация была доступна в окне документации Xcode, хотя и несколько скрыта за «Более связанные элементы», pseudo-link, но когда я проверю прямо сейчас, ссылка на гид отсутствует в любом месте справочника класса NSTableView. Это ужасный надзор.

Вы также можете просмотреть или найти Guides section of the developer library.

+0

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

1

Знание, изучение документации и, возможно, чтение некоторых хороших книг - это ответ. Например, в документации вы процитировали (курсив мой)

вы должны изменять значения в источнике данных и позволяет изменения, которые будут отражены в виде таблицы

Вы должны делайте обе эти вещи. Если вы хотите, чтобы это произошло «автоматически», посмотрите на bindings, в котором используются несколько других функций Cocoa, которые вы не поймете на этом этапе, чтобы сделать для вас материал источника данных таблицы. Я бы посоветовал понять, что происходит вручную, прежде чем передавать управление привязкам, поэтому у вас есть шанс понять, когда что-то пойдет не так.

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

Смежные вопросы