В чем преимущество, по-видимому, чрезмерно сложного рабочего процесса управления / розетки XCode? - PullRequest
2 голосов
/ 29 августа 2009

Я новичок в Objective-C, Какао, Xcode и Интерфейсном Разработчике. В прошлом у меня был некоторый опыт работы с Си, а также немалый опыт работы с RealBASIC.

Я работаю над книгой Марка и Ламарша для iPhone 3 Dev и действительно просто ошеломлен тем, насколько скучны некоторые вещи. Может быть, кто-то может пролить свет на это для меня. Мой вопрос на самом деле: почему процесс, казалось бы, простых действий включает в себя такое сложное количество шагов? Есть ли польза от сложности, которую я полюблю позже? Или это просто грубый факт, который неизбежен?

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

myTextBox.text = mySlider.value

к событию Изменено ползунком. Я могу запрограммировать это менее чем за 1 минуту.

В Xcode / Interface Builder мне нужно физически ввести объявление для текстового поля и ползунка, затем также ввести объявление свойства / выхода для каждого, затем создать объявление метода и реализацию для четного ValueChanged, затем установить (относительно) сложное приведение типа целочисленного значения ползунка в строку NSString с помощью initWithFormat. Затем я должен вернуться в Интерфейсный Разработчик, чтобы связать элементы управления с наборами элементов управления и методов, которые я набрал. Я не понимаю, как это можно сделать гораздо менее чем за 10 минут. Может быть 5.

Так в чем же выгода? Почему Интерфейсный Разработчик не создает автоматически или, по крайней мере, не предлагает управляющие объявления и операторы @property, а также объявления и реализации методов? Почему нельзя дважды щелкнуть слайдер в IB, чтобы предложить вам список событий и предложить автоматически вставить скелетный метод в ваши файлы .h и .m? И почему IB даже должен быть отдельным приложением?

Я готов признать, что отчасти это мое незнакомство со всеми вещами XCode, но действительно ли это так эффективно, как может быть среда разработки?

Приношу свои извинения, если это тема мертвой лошади, пламенной приманки с противоборствующими сторонами на полной аггро. Если это так, пожалуйста, просто скажите «да, это так» и продолжайте.

Спасибо, * 1020 Роб *

Ответы [ 2 ]

3 голосов
/ 29 августа 2009

Многие причины, по которым работает IB, станут более понятными, когда вы привыкнете к парадигме MVC.

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

1 голос
/ 29 августа 2009

Раньше я тоже думал, что Xcode и Interface Builder были излишне сложными, пока я не проработал книгу по обоим направлениям (в частности, Начало разработки для iPhone: изучение iPhone SDK ).

Если вы серьезно относитесь к работе с Xcode и Interface Builder и так же растеряны, как и я, когда начинали, я настоятельно рекомендую подобрать книгу, подобную той, которую я использовал. Конечно, это было для разработки iPhone, но я думаю, что есть другая книга того же издателя (или автора), которая посвящена программированию на Mac.

Как только вы проработаете это и поймете, что происходит за кулисами, это начинает иметь гораздо больше смысла. В некотором смысле я предпочитаю IB таким вещам, как Expression Blend или XAML для программирования WPF в .NET.

Попробуйте книгу и посмотрите, поможет ли это :-) Удачи!

...