Ответы пользователя по тегу iOS
  • XML serialization/deserialization on iOS?

    @Infernal
    Посмотрите на модуль Object Mapping из RestKit (https://github.com/RestKit/RestKit)
    Ответ написан
    Комментировать
  • Как лучше всего хранить данные в программе для iPhone?

    @Infernal
    Если база заполняется пользователем, то кладите в Documents. Будут создаватся автоматические бекапы в iTunes и iCloud, пользователь никогда данные не потеряет.
    Если это просто кеш серверных данных для ускорения работ, то в Caches. Бекапы делатся не будут, данные автоматически удалятся, когда на девайсе будет мало свободного места.
    Если база — это кеш для использования в оффлайне, создавайте базу в Caches или Documents и установите файл атрибут, как указано вот тут: adcdownload.apple.com//ios/ios_5.0.1_beta/iclouddonotbackupattribute.pdf
    Не будет бекапов, но базу вашу не удалят, даже если память закончится.
    Ответ написан
    Комментировать
  • Книги по Objective-C + OpenGL?

    @Infernal
    Приведу список для iOS т.к. для Mac не пишу

    Objective-C:
    developer.apple.com
    Programming in Objective-C (Stefen Kochan)

    В целом по OpenGL ES:
    «OpenGL ES 2.0 Programming Guide» (Aaftab Munshi, Dan Ginsburg, Dave Shreiner)

    OpenGL ES на iPhone:
    «iPhone 3D Programming: Developing Graphical Applications with OpenGL ES» (Philip Rideout)

    cocos2d:
    «Learning Cocos2D: A Hands-On Guide to Building iOS Games with Cocos2D, Box2D, and Chipmunk» (Ray Wenderlich, Rod Strougo)
    «Learn iPhone and iPad cocos2d Game Development» (Steffen Itterheim)
    Ответ написан
  • Как в UITableView добавить элементы?

    @Infernal
    1. Добавляете к вашему конроллеры протокол UITableViewDataSource
    2. Обязательно реализуете следующие методы:
    – tableView:numberOfRowsInSection:
    – tableView:cellForRowAtIndexPath:
    Последний обычно реализовывается по следующему шаблону:
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString* reuseId = @"ReuseID";
    
        //сначала пытаемся найти ранее созданную, но не используемую ячейкц
        UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseId];
        if (!cell) {
            //если не нашили, создаем новую
            cell = [[UITableViewCell alloc] initWithReuseIdentifier:reuseId] autorelease];
        }
        //теперь выполняем настройку ячейки под наши данные
    }
    

    3. Если в таблице несколько секций то реализовываете также
    – numberOfSectionsInTableView:
    4. В IB устанавливаете у таблицы свойтсво dataSource на ваш контроллер

    Таким образом получите статическую таблицу. Для динамического добавления/удаления ячеек к tableView впоследствие вызываете методы таблицы:
    – insertRowsAtIndexPaths:withRowAnimation:
    – deleteRowsAtIndexPaths:withRowAnimation:
    – insertSections:withRowAnimation:
    – deleteSections:withRowAnimation:

    Вызовы жтих методов заключаются между [tableView beginUpdates] и [tableView endUpdates]
    Важно. DataSource должен быть готов обработать измененные данный до вызова этих методов
    Ответ написан
    1 комментарий
  • Как на iOS поставить специфическое приложение, которое разработано под одну компанию?

    @Infernal
    Насколько я знаю, ограничить приложение в AppStore для одной организации нельзя.
    Ad-Hoc сборка в принципе может помочь распространению без AppStore и джейлбрейка. Минусы:
    1) Предназначено не для продакшена, а для распространения среди тестеров. Остальные минусы вытекают из этого.
    2) Ограничение в 100 устройств
    3) Срок жизни AdHoc профиля ограничен. Месяца через 3 придется обновлять его на всех устройствах.
    Подробнее тут developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/145-Distributing_Applications/distributing_applications.html

    Второй вариант — джейбрейк.
    Третий — HTML5-приложение
    Ответ написан
    6 комментариев