Comments 43
О боже. Ну сколько можно уже про хелловорды рассказывать? При чем на таких платформах, на которых они в три клика делаются.
-5
После таких IDE как Qt Creator и Visual Studio немного непривычно работать с XCode. Неплохой пример, демонстрирующий процесс разработки с использованием XCode.
+9
Автор проделал большой труд. Упорядочнено написал про iOS шаги…
Пользовался QT ,Visual Studio… Когда начинал работать с xCode не хватало такого простого и понятного примера. Спасибо за статью
Пользовался QT ,Visual Studio… Когда начинал работать с xCode не хватало такого простого и понятного примера. Спасибо за статью
-1
Не понимаю, что сложного в работе с InterfaceBuilder, все так же, как в той же студии, перетаскиваем объекты драгендропом, по клику на объекте можно править его свойства. Можно даже проще делать, включаем отображение в режиме Assistant, и перетягиваем кнопки прямо в код, IB сам создаст оутлеты или экшены, при этом не забудет подчистить память в деалоке и вьюВилДисапир. Кстати, про управление память в статье вообще ни слова, хоть бы мозги в авторелиз засунули, это же статья для новичков, зачем показывать как делать нельзя.
0
Ну нечитабельный же код. Используйте
<source lang="...">...</source>
+2
objective-c? или как?
-1
cpp (разрешенные тэги)
0
вообще, если бы внимтельно прелюдию написал я пишу статьи адаптированые с курса cs193p под sdk5. Это учебный стенфорда. Будут и другие статьи. А если хочешь оспорить учебную программу это не ко мне.
-1
Да хоть Кембриджа. Неужели нет более интересных тем, чем рассусоливание хелловордов?
+4
не нравится можешь не читать ) в чем проблема то?
-2
просто чтобы появились интересные проекты — надо научится, и чтобы люди научились, а потом начали писать эти проекты. А если люди не будут уметь, откуда твои интереные темы возьмутся?
-5
1. Если бы ты потрудился полистать темы блога «Разработка под Apple iOS», ты бы нашёл подобные хеловорды.
2. Опять же, листая темы этого блога можно заметить, что уровень хабрапользователей не такой уж низкий в этом вопросе, чтобы подсовывать вот такие калькуляторы.
3. Я конечно могу и не читать, но моё замечание было более конструктивным: может поищешь более интересные темы? Или будешь кропать хеловорды?
2. Опять же, листая темы этого блога можно заметить, что уровень хабрапользователей не такой уж низкий в этом вопросе, чтобы подсовывать вот такие калькуляторы.
3. Я конечно могу и не читать, но моё замечание было более конструктивным: может поищешь более интересные темы? Или будешь кропать хеловорды?
+4
ок принял к сведению
-2
Имхо, но чем больше «хеловордов», тем лучше. Когда я только начинал знакомиться с iPhone SDK (тогда он еще так назывался) — было мало хеловордов на русском. И я был бы очень рад находя такие вот хелло ворды.
+1
хеллоуворлды тогда уж…
+1
Несколько дней назад вышли новые курсы с Xcode 4 и iOS5 (по крайней мере первая часть с калькулятором там доступна). Так что смысла этих адаптаций больше нет (разве что перевод).
+1
как раз их ждал… значит буду заниматься просто переводом. Если конечно люди оценивать будут. Если будут встречать таким же негативом просто запихаю к себе в блог :)
0
Да не переживайте, продолжайте писать для Хабра.
«Негатив» у многих хабраюзеров появляется от того, что «хелловорлд'ная» статья используется для «прохождения» песочницы. Такие статьи безусловно полезны, но «бывалым» хочется видеть среди «нубисов» каких-нибудь случайно откопанных гуру, Вассермана, к примеру.
«Негатив» у многих хабраюзеров появляется от того, что «хелловорлд'ная» статья используется для «прохождения» песочницы. Такие статьи безусловно полезны, но «бывалым» хочется видеть среди «нубисов» каких-нибудь случайно откопанных гуру, Вассермана, к примеру.
+2
А что будет, если каким-либо случайным образом view будет выгружено из памяти? (например если приложение свернуть и долго не открывать и в это время играть в мощные игрушки). В таком случае неплохо было бы иметь модели метод, который вернет то, что должно быть на «экране» калькулятора. И в viewDidAppear например присваевать это значение label'у.
Мне кажется, модель у нас немного зависима от представления. Т.е. если мы на view заменим title кнопок с действиями на «сложение», «умножение» и т.д. то конструкции вида:
Будут выдавать неправильный результат. Может быть лучше добавить для каждой кнопки tag и объявить enum с тагами кнопок-действий?
В модель передавать таги и проверять так (или заменить на switch):
Мне кажется, модель у нас немного зависима от представления. Т.е. если мы на view заменим title кнопок с действиями на «сложение», «умножение» и т.д. то конструкции вида:
if ([@"+" isEqual:waitingOperation]) {
operand = waitingOperand + operand;
}
Будут выдавать неправильный результат. Может быть лучше добавить для каждой кнопки tag и объявить enum с тагами кнопок-действий?
enum {
kButtonAdd = 1,
kButtonDivide,
// и так далее
};
В модель передавать таги и проверять так (или заменить на switch):
if (waitingOperation == kButtonSum) {
operand = waitingOperand + operand;
}
+3
Впринципе согласен с замечанием, так бы было даже правильнее сделать, потому что преобразование string в double всервно будет занимать ресурсы пускай и незначительны, а при написании больших проектов эта привычка даст о себе знать.
-2
Вообще предложенная модель принадлежит не автору статьи, а лектору Стенфордского университета. Честно говоря, там у них все немного странное, и слушаая лекции, нужно быть хорошо подготовленным, чтобы ко всему относится критично. Поэтому лично я считаю эти лекции плохим стартом для начинающего.
+2
Методы класса- тут все просто setOperand- это обычный сеттер для переменной operand. Можно было бы использовать и @syntesuze но тогда будет сгенерирован геттер который нам никчему.
Свойства не обязательно синтезировать. Геттер и сеттер можно реализовать вручную. При этом поле _operand можно использовать автоматически. И в контексте задачи, геттер операнда никому особо бы не помешал.
Свойства не обязательно синтезировать. Геттер и сеттер можно реализовать вручную. При этом поле _operand можно использовать автоматически. И в контексте задачи, геттер операнда никому особо бы не помешал.
0
подчеркивания — противоречат code style, они зарезервированы приватными структурами Эппла.
Avoid the use of the underscore character as a prefix meaning private, especially in methods. Apple reserves the use of this convention. Use by third parties could result in name-space collisions; they might unwittingly override an existing private method with one of their own, with disastrous consequences. See “Private Methods” for suggestions on conventions to follow for private API.
Avoid the use of the underscore character as a prefix meaning private, especially in methods. Apple reserves the use of this convention. Use by third parties could result in name-space collisions; they might unwittingly override an existing private method with one of their own, with disastrous consequences. See “Private Methods” for suggestions on conventions to follow for private API.
+2
ну, если идти путем минимализации использования данных то геттер будет занимать память- что впринципе ни к чему. На калькуляторе это не скажется, а вот мусор в больших проектах скажется.
0
Осмелюсь сделать замечание — для опытных разработчиков Ваш топик хорош наивностью.
Для новичков маловато разжеван — смело добавляйте подсказки что тако IB, и объясняйте в чем его преимущество перед программным созданием контролов.
По мельчайшим шагам и с комментариями — вспомните себя при создании первого проекта.
Для новичков маловато разжеван — смело добавляйте подсказки что тако IB, и объясняйте в чем его преимущество перед программным созданием контролов.
По мельчайшим шагам и с комментариями — вспомните себя при создании первого проекта.
+1
Я решил попробовать но до конца не дошел. И вправду для опытных это смех и только, а для первого раза многое непонятно.
Дошел до места:
«Теперь опишем все наши методы.
— (void)setOperand:(double)aDouble{
operand = aDouble;
}
— (double)performOperation:(NSString *)operation{
if ([operation isEqual:@»sqrt"]) {
operand = sqrt(operand);
}
return operand;
}
"
И куда это писать? Логично что в CalcBrain.h но когда это пишешь редактор выставляет восклицательные знаки мол ошибка, и все такое. Потому лично для меня это место пока Стоп.
Дошел до места:
«Теперь опишем все наши методы.
— (void)setOperand:(double)aDouble{
operand = aDouble;
}
— (double)performOperation:(NSString *)operation{
if ([operation isEqual:@»sqrt"]) {
operand = sqrt(operand);
}
return operand;
}
"
И куда это писать? Логично что в CalcBrain.h но когда это пишешь редактор выставляет восклицательные знаки мол ошибка, и все такое. Потому лично для меня это место пока Стоп.
0
Посмотрел один урок на Ютубе и стало все понятно. Думаю для начала нужно всем начинающим хотя бы поглядеть видео примеры чтоб понятно стало как это все работает. Потому как с нуля это непросто.
Сейчас допишу по вашему примеру.
Сейчас допишу по вашему примеру.
0
UFO just landed and posted this here
Эх, хороший вроде туториал, а нажатие повешено на touchDown :(
touchUpInside же!
touchUpInside же!
+1
Верните картинки, пожалуйста. Или это только у меня не отображаются?
0
Программа очень похожа на первую из стэнфордских лекций 2012 года, оттуда идея?
0
Картинки… :(
0
Sign up to leave a comment.
MVC в Objective-C или калькулятор для iOS 5