Лучше запуститься, как кодировать в Objective C для рабочего стола перед риском к iPhone?

Вам действительно нужно возвращать этот объект синхронно, когда fn() не вернул обещание? Было бы намного проще, если бы ваша функция всегда могла вернуть обещание. Вы просто resolve указали бы значение, и независимо от того, было ли это простым значением, потом или обещанием, вы получите от него обещание.

Тогда вы бы связали свою логику обработки результатов / ошибок с этим, только один раз:

function dispatchCall() {
    // ...

    // return Promise.resolve(fn.apply(context, args))… - doesn't catch synchronous exceptions
    return new Promise(function(resolve) {
        resolve(fn.apply(context, args)); // promise constructor catches exceptions
    }).then(function (result) {
        // the promise was fulfilled
        if (result !== undefined) {
            return { status: 0, result: result };
        } else {
            return { status: 0 };
        }
    }, function (err) {
        // the promise was rejected
        if (typeof err === "object") {
            return { status: 400, errorMessage: err.name + ", " + err.message, stack: err.stack };
        } else {
            return { status: 400, errorMessage: err };
        }
    });
}
6
задан farhany 14 April 2009 в 04:08
поделиться

7 ответов

Для чего это стоит, комментарий от другого новичка в разработке iPhone ...

Мой фон - я был Программист на Си около 15 лет назад, и с тех пор я немного перешел на технологии - теперь я - разработчик Adobe Flex в своей повседневной работе. Ночью, однако, я пытаюсь превратиться в разработчика для iPhone; -)

Поэтому я купил книгу о разработке для iPhone SDK - «iPhone в действии». Я также купил «Программирование в Objective-C 2.0». Я думал, что с этими двумя буду настроен, но после нескольких дней чтения и работы с упражнениями стало ясно, что ... я безнадежно растерялся!

Так что я купил другую книгу - на этот раз, "iPhone SDK Development" из Pragmatic Bookstore - эта книга находится в стадии разработки, но выглядела «правильно» для меня. Оказывается, эта книга взяла меня дальше - это большая часть работы - однако, первые главы были хорошо спланированы, и я смог следовать, а затем внезапно они начали предполагать, что я прекрасно помню извлеченные уроки и процедуры последовал в предыдущих главах, и я снова начал немного колебаться - худшее, что я нахожу, когда пытаюсь чему-то научиться из книги, - это постоянно прыгать с места на место, чтобы понять, кем я должен быть делаю.

Итак (да, я знаю ... но потерпите меня ...) я купил ДРУГУЮ книгу ... "Начало разработки iPhone" у APress. Теперь эта книга ничего не предполагает. ЭТА книга попадает в цель для начинающих разработчиков iPhone. Не нужно прыгать вокруг, и, наконец, я обнаружил, что прогрессирую.

Однако, что я Я обнаружил, что ВСЕ три книги в СОЕДИНЕНИИ друг с другом действительно, кажется, дают мне более полную картину - вместе у меня есть большой набор учебного и справочного материала. Книга Objective-C, которую я еще не затронул, но я ожидаю, что это будет то, что мне нужно - справочное руководство по языку; Я не буду нуждаться в этом, пока не буду намного глубже в кишках. Я медленно выхожу из этого ужасного «в глубоком конце, и я не могу очень хорошо плавать», чувствуя себя таким, где я могу, по крайней мере, идти по воде. Надеюсь, с немного большим количеством гребли я смогу дотронуться до дна - конечно, моя уверенность вернется; -)

Так что в любом случае, чтобы ответить на первоначальный вопрос - лично, если я сделал это снова, я не Не думаю, что я бы чего-то достиг, начав сначала с создания Mac, а затем с iPhone. Я определенно потерял бы меньше волос, если бы сначала купил книгу APress - для меня это была книга, которая имела для меня полное значение. Я думаю, что тогда книга Pragmatic 'iPhone SDK Development' была лучшей книгой по резервному копированию. Это путь, который я предложил коллеге, и я уверен, что он хороший.

Надеюсь, это поможет!

Джейми.

3
ответ дан 17 December 2019 в 04:52
поделиться

Определенно полезно иметь опыт работы с Какао, прежде чем приступить к разработке iPhone, но лично я бы не стал так волноваться много. Изучить, как использовать инфраструктуру Какао и в целом освоиться с ней, было бы полезно, но есть некоторые аспекты программирования Какао на рабочем столе, которые, как вы обнаружите, имеют мало отношения к программированию на iPhone (например, дизайн пользовательского интерфейса с помощью Interface Builder). Кроме того, есть уникальные аспекты программирования на iPhone, к которым обычное программирование на Какао не подготовит вас. (У некоторых опытных разработчиков Cocoa все еще была некоторая кривая обучения, когда они впервые начали разрабатывать iPhone.)

Другими словами, я бы порекомендовал изучить основы нормальной разработки Cocoa, но вы выиграли '

1
ответ дан 17 December 2019 в 04:52
поделиться

Нет необходимости или пользы в изучении настольного Cocoa перед переходом на UiKit на iPhone. Могут быть некоторые недостатки.

Несмотря на то, что UIkit и Cocoa разделяют множество концепций, их нелегко изучить на рабочем столе. И, в конце концов, они не идентичны. Точно так же существует множество фреймворков, которые используются совместно iPhone и настольным компьютером - в этих случаях от использования настольных версий до их эквивалентов на телефоне ничего не дадут.

Есть некоторые трудности, с которыми вы столкнетесь только на iPhone, и вещи, которые могут упростить работу на настольном компьютере:

  • вы разрабатываете на целевой машине, на iPhone управление целевым объектом затруднено
  • iPhone - это память и процессор ограничен
  • на iPhone нет сборки мусора.

Я считаю, что лучше привыкнуть к этим проблемам как можно скорее, а не впадать в «дурные привычки» на рабочем столе (или просто порождать недоразумения когда идешь в айфон).

0
ответ дан 17 December 2019 в 04:52
поделиться

Если ваша единственная цель при кодировании настольных приложений - это знакомство с Objective-C, какао и Xcode, это не Стоит.

Вы ничего не узнаете, начиная с настольных приложений, которые вы бы не узнали прямо в приложениях для iPhone. Настольные приложения не проще, чем приложения для iPhone, они просто разные.

Это может даже привести к обратным результатам, если вы изучите особенности настольных приложений, которые вам придется «разучить» при разработке iPhone.

Конечно, если ваш Намерение состоит в том, чтобы войти в экосистему OS X, изучение обоих было бы очень ценно.

1
ответ дан 17 December 2019 в 04:52
поделиться

In some ways the iPhone is simpler for a C/C++ developer. No garbage collection is the big one. If you start on the desktop and get used to GC, you'll have a hell of a time when you hit the iPhone.

0
ответ дан 17 December 2019 в 04:52
поделиться

Самая большая проблема не в изучении Какао и / или Какао Touch, а в Objective-C. Когда у вас есть основы, Какао прост и похож на многие другие ОО-структуры.

Я предлагаю:

  1. Статья в Википедии об Objective-C: https://en.wikipedia.org/wiki/Objective- C
  2. «Внешние ссылки» в Википедии для некоторых основ языка
  3. Подкаст Hot Cocoa: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=294050835
  4. Подкаст Cocoa Cast: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=298413458
  5. Затем курс по программированию приложений для iPhone в Стэнфорде на iTunes U: https : //podcasts.apple.com/us/podcast/iphone-application-programming-spring-2009/id384233222
  6. Присоединитесь к программе для разработчиков на Apple: https: //developer.apple.com
0
ответ дан 17 December 2019 в 04:52
поделиться

Если у вас есть какой-либо опыт разработки, вы знаете, что все языки похожи, и вы знаете только, если полностью его понимаете работая с ним.

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

Тонна примеров кода для яблок, ответы здесь и на других сайтах. Начните с рабочего примера приложения, которое не слишком далеко от того, что вы хотите сделать, и настройте его с течением времени. Вы удовлетворены рабочим приложением, сразу же узнаете о проблемах и можете учиться мелочам одновременно.

0
ответ дан 17 December 2019 в 04:52
поделиться