• Какой MacBook Pro взять для работы с Xcode 7?

    @warranty_voider
    mid2012 экран говно. 16 гиг оперативы и SSD исправляют производительность, но экран для нормальной работы не годится. 1280х720 в 2016 году это как-то эм.. Говорю как бывший владелец - спустя год работы поменял при первой возможности на mid2014 rMBP 15" - сказка с песней теперь. Но если внешний монитор не смущает (мне за ноутом удобнее оказалось), то 2012 с апгрейдами еще вполне потянет
    Ответ написан
    Комментировать
  • Как разобрать сложный JSON с помощью RestKit?

    @warranty_voider
    RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[Message class]];

    ресткит не генерирует маппинги сам, нужно явно указать ему, какое поле JSON маппить в какую пропертю объекта, это раз.
    keyPath:@"responde"
    опечатка?

    "response" это массив, но в нем лежит больше одного типа объектов, поэтому нужен динамический маппинг (а лучше надавать по рукам тому, кто такое апи написал)

    RKObjectMapping *messageMapping = [RKObjectMapping mappingForClass:[Message class]];
    [messageMapping addAttributeMappingsFromDictionary:@{ @"ID": @"id", @"HEADER" : @"header" }];
    Ответ написан
    Комментировать
  • При написании программы для iPhone, какую технологию выбрать для работы с базами данных?

    @warranty_voider
    Если у вас уже есть реализация для Sqlite на Java, может оказаться проще портировать ее на Obj-C. Но в целом CoreData рулит и педалит, особенно если для разбора JSON использовать что-нибудь типа RestKit
    Ответ написан
    Комментировать
  • Можно ли в uialertcontroller вставить картинку?

    @warranty_voider
    Нельзя. Можно воспользоваться сторонними компонентами, например LMAlertView
    Ответ написан
    Комментировать
  • Почему в iOS стрелка всегда только у кнопки Back?

    @warranty_voider
    Потому что Back это системное действие. Если не указано обратное, кнопка Back у Navigation Controller есть всегда. А понятия кнопки Next не существует, что будет делать ваша правая кнопка, зависит только от вас. Хотите сделать ее со стрелкой - делайте на здоровье кастомный UIBarButtonItem, никто не запретит. Но заранее знать, какое именно действие будет Next система не может
    Ответ написан
  • Как обновить View при получении нотификации от NSNotificationCenter?

    @warranty_voider
    notification center штука в принципе небыстрая. По возможности используйте делегат. При работе с NC, убедитесь, что вы не только подписываетесь на нотификации, но и вовремя от них отписываетесь - один и тот же контроллер может подписаться на один и тот же нотификейшн много раз, соответственно много раз будет вызываться обработчик
    Ответ написан
  • Macbook: что, если SSD поставлен неправильно?

    @warranty_voider
    У CD более медленный интерфейс, поэтому лучше ssd ставить в штатное место, а hdd вместо привода
    Ответ написан
    Комментировать
  • Как передать NSMutableArray с объектами одного класса в метод?

    @warranty_voider
    Никак. В Foundation нет типизированных контейнеров. Можно написать свой контейнер, который будет проверять тип элементов, можно отдать это на откуп вызываемой функции, реализация одинакова будет
    Ответ написан
    Комментировать
  • Как в языках программирования реализуется асинхронное поведение?

    @warranty_voider
    В JS данное поведение реализовано через Event Loop. Это механизм, который позволяет связывать события (истечение таймера, ответ на запрос, явно вызванное событие) и функцию-обработчик, которая вызывается после того, как это событие наступило. Жирным выделенное означает, что функция вызовется не в сразу же после наступления события, но в произвольный момент времени после. Т.е. она не будет вызвана раньше, чем случится событие, но когда именно она будет вызвана после его наступления – зависит от того, когда Event Loop снова получит управление, т.е. отсутствует понятие прерывания – обработчик не будет вызван, пока выполняется какая-либо другая функция. Соответственно, как только в Event Loop'e больше нет выполняющихся либо ожидающих функций, программа завершается.

    setTimeout(function() { console.log('Timeout 1000'); }, 1000 );
    setTimeout(function() { console.log('Timeout 2000'); }, 2000);
    
    console.log('Now!');

    Выведет
    Now!
    Timeout 1000
    Timeout 2000


    И завершится, хотя программа достигла конца после вывода "Now!"
    Ответ написан
    Комментировать