Реалити-шоу «Научи меня XCODE». Уроки по разработке для iOS. 7 серия

22

Праздники закончились, а значит, мы снова готовы вас порадовать очередной серией нашего познавательного реалити-шоу для начинающих разработчиков под iOS. Устраивайтесь поудобней и наслаждайтесь тем, что приготовили для вас два Алексея.

А подготовили они рассказ о том, как сделать так, чтобы ваше приложение выглядело по-взрослому с самого момента загрузки. Для этого всего лишь необходимо украсить его привлекательным сплэшскрином и индикатором загрузки контента, в простонародье называемым прелоудером. Желаем приятного просмотра и замечательных приложений!

Исходные файлы урока можно загрузить по этой ссылке

Webparadox: Сайт | Facebook | ВКонтакте

Скачать урок можно с помощью торрента

< Смотреть 6 серию
Смотреть 8 серию >

22 комментария

  1. 0

    Открыл исходники и при запуске ошибка.

  2. 0
    ApplevsGoogle

    Потрясающе! Делайте дальше, если что, буду всегда смотреть инсайдер ради «Научи меня XCode». Увлекся благодаря этому шоу программированием. Некогда не думал, что это может быть так интересно(раньше максимум скрипты и .ini). Еще раз спасибо! (отправлено из приложения AppleInsider.ru)

  3. 0
    Александр

    2013-05-14 16:49:12.100 NewsCatalog[279:c07] *** Terminating app due to uncaught exception ‘NSRangeException’, reason: ‘*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array’
    *** First throw call stack:
    (0x1ce8012 0x1125e7e 0x1c9db44 0x2f9c 0x1248fb 0x1249cf 0x10d1bb 0x11db4b 0xba2dd 0x11396b0 0x22e4fc0 0x22d933c 0x22e4eaf 0x1592bd 0xa1b56 0xa066f 0xa0589 0x9f7e4 0x9f61e 0xa03d9 0xa32d2 0x14d99c 0x9a574 0x9acc1 0x2856 0x27864 0xc058f7 0x491fbdd 0x4921b14 0x4920f07 0xc03e02 0x26c7c 0x231e2 0x240c9 0x4a4c53f 0x4a5e014 0x4a4e7d5 0x1c8eaf5 0x1c8df44 0x1c8de1b 0x1c427e3 0x1c42668 0x69ffc 0x245d 0x2385)
    libc++abi.dylib: terminate called throwing an exception
    (lldb)

    • 0

      Александр, Это из-за того что в ленте в одном из постов нет изображения. Нет данных для парсинга и поэтому вылетает исключение.

  4. 0
    Виктор

    Я сам недавно начал осваивать Objective-C и iOS SDK, хотя вообще программистом работают достаточно давно. И вот меня смущают некоторые вещи, которые остаются без объяснения для совсем начинающей публики. То что вытворяет Алексей-программист с self.window.rootViewController в didFinishLaunchingWithOptions из EXAppDelegate. «Тут его ещё нет, а тут он уже есть.» Почему он там уже есть? Ни слова. А прикол в том, что его там может ещё и не быть. Вот вставлю я что-нибудь делающее задержку между «[RSSParser parseRSSFeedForRequest:success:failure:]» и «return YES», выполнится запрос быстрее чем дойдёт очередь до «return YES», вызовется блок из «success» раньше завершения «didFinishLaunchingWithOptions», и всё накроется. Это же возможно, если я правильно понимаю работу AFXMLRequestOperation? Печально получится, когда человек так сделает, и потом не будет понимать, почему иногда падает, а иногда нет. При этом в отладчике у него обычно будет всё в порядке. Параллельные потоки вообще отлаживать сложно, особенно если упустить их суть на начальном этапе, когда начинаешь заниматься программированием. Хочется побольше заострения внимания на таких «мелочах».

  5. 0
    Александр

    в следующем уроке ждем:
    . всплывающее сообщение напоминание о оценке приложения в аппсторе
    .. сохранение состояния приложения
    … социальные кнопки
    …. добавление сообщения в избранное
    ….. категории новостей

  6. 0
    Александр

    как побороть проблему больших имиджей
    приимер изображение: http://clip2net.com/clip/m54165/1369142701-clip-17kb.jpg
    в результате мы видим что большие имиджи не прогружаются (пустое место, грузятся долго), а те что прогрузились пытаются занять все доступное им пространство.

  7. 0
    Александр

    как корректно сделать проверку на отсутствие имиджа в записе ?
    типа если имиджа нет, то отдавать заглушку и урл на имидж в нил ?

    • 0
      Дмитрий

      Александр, UIImage *image = [загружаешь картинку]

      if (image)
      {
      //картинка успешно загрузилась
      } else {
      //картинка не загрузилась
      }

      Удачи!!

  8. 0
    Александр

    вместо навигэшн контроллера первым контроллером после сплеш использую табБарКонтроллер в котором первым табом идет уже навигейшн контроллер с лентой.
    всплыли ошибки которые не могу понять и локализовать проблему
    -[UINavigationController setData:]: unrecognized selector sent to instance 0x9462e20
    *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[UINavigationController setData:]: unrecognized selector sent to instance 0x9462e20’

  9. 0
    Алексей

    Ребята! Помогите разобраться плиз. У меня почему-то не хочет менять UIViewController на EXSplashScreenViewController. Все проверил вроде норм. что делать?

  10. 0
    Алексей

    Можно вопрос к опытным ребятам? Почему у меня вентилятор только первые 2 секунды работает, а потом замирает? Также теперь почему-то в DetailViewController все разобрано и неотформатировано? Те картинка потом белый экран потом заглавие потом опять белый экран и потом только текст?
    Спасибо за ответы!

    • 0
      Алексей

      Алексей, А все)) просто автолэйот поставил и все заработало) Только почему-то прокрутка только текста или картинки отдельно( Как обратно вернуть(чтобы как в 4 уроке все вместе прокручивало?)

Авторизуйтесь Чтобы оставить комментарий