• Как сделать переключатель между UITableView и UICollectionView?

    Flanker_4
    @Flanker_4
    тут не нужна uitableview
    все делается средствами uicollectionview
    почитайте поподробней документацию. если не вдаваться в детали, то Вам нужно объявить два lyouta collection view, один списковой, второй плиточный. и при изменении отображения выбирать нужный layout через setCollectionViewLayout:

    https://developer.apple.com/library/ios/documentat...
    Ответ написан
    Комментировать
  • Автодополнение в Xcode6?

    Flanker_4
    @Flanker_4
    Оно просто глючит, перезапуск хкода лично у меня решал эту проблему. Там вышла вторая бэта, попробуйте ее
    Ответ написан
    Комментировать
  • Проблема с переопределением touchesEnded для подкласса UICollectionViewCell?

    Flanker_4
    @Flanker_4
    Вот только ограничение на выделение нужно было делать в
    - (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath
    Ответ написан
    Комментировать
  • UITableView - как увеличить кеш ячеек?

    Flanker_4
    @Flanker_4
    Вы путаете причину и следствие из-за отсутсвия понимания Работы table view.

    Это не список, как Вам может показаться, это скорей барабан. Ячейка которая уходит вверх, за пределы области видимости, тут же телепортируется вниз и выезжает от туда(как буд-то вы мешаете колоду карт) По этому то создание и заполнение ячейки в дата соурсе такое "странное". хотя в последних версиях эту сложность скрыли за сахарком. И это нельзя поменять в UITableView, хотя....

    Ну так вот, возвращаясь к Вашей проблеме: Вам не нужно увеличивать кэш или разводить костер вокруг ячеек uitableview - это путь в никуда.
    Вам просто нужно отделить котлеты от мух.
    завести объект или словарь (как предлагает @ManWithBear), который будет описывать состояние ячейки. так называемую модель. Пример: для ячейки с тремя чекбоксами это будет объект с тремя булевскими свойствами.
    Далее, при проклацывании любого из чекбоксов изменять соотвествующее свойство у обьекта (запоминать изменение). А при отображении ячейки вытаскивать это булевское значение и ставить переключатели в нужное значение. И Вы не поверите, но календарь в ios работает именно так, только модель там в coredata'овском ларчике.
    Ответ написан
    Комментировать
  • Изменение модели (CoreData) - как бороться с ошибкой?

    Flanker_4
    @Flanker_4
    Вам нужно провести миграцию. существуе два вида:
    1. простая (lightweight), в данном случае от Вас требуется сделать "три клика", сохранив старую модель хранилища. Все остальное за Вас сделает core date. Но есть небольшие ограничения на изменение модели, лишь простое добавление сущностей, переименовывание и т.п. гуглите по тэгам "lightweight core data migration". Ах да, старую модель нужно сохранять до изменений(это важно!). т.е. создали вы сущность Автомобиль , чего то надобавляли в него и остановились на законченном варианте. сохраняете модель и не трогаете ее, а все новые изменения ведете в новой модели . xcode помогает менеджить различные версии моделей.
    2. все ручками, когда вы не можете использовать простую миграцию из-за существенного изменения модели

    все это подробно расписано в офф. документации (ну или том же гугле)

    https://developer.apple.com/library/ios/documentat...
    Ответ написан
    Комментировать
  • Objective-C. Как вызвать метод из другого класса?

    Flanker_4
    @Flanker_4
    не все так просто и зависит от "архитекрутры". Если вы использовали стандартные шаблоны при создании проекта, то у вас по идее доступен UINavigationController
    ну или же доступен сам это UIViewController. Точнее можно сказать, только если я вижу код метода
    application:didFinishLaunchingWithOptions:

    В этом методе вам нужно запомнить этот UIViewController в переменную, которая будет объявленна в AppDelegat'e и позже ее вызвать в этих методах.
    А вообще, Ваша задача решается проще

    в методе viewDidLoad класса ViewController
    в конце добавляете

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(pauseTheTimer:)
                                                 name:UIApplicationWillResignActiveNotification
                                               object:nil];


    stackoverflow.com/questions/9247654/iphone-applica...
    плюс добавлеете метод
    -(void) pauseTheTimer:(NSNotifycation*)notify{
       [self pauseGame];
    }

    Так же следует почитать про работу NSNotificationCenter и паттерна обсервер (observer)
    Ответ написан
  • Как сделать повторяющуюся анимацию в IOS?

    Flanker_4
    @Flanker_4
    Самым правильным решением будет использование CABasicAnimation (нагуглить примеры довольно легко). Там есть свойство repeatCount, и есть значение для него HUGE_VALUE , хэх

    есть еще костыльный вариант
    Ответ написан
    Комментировать
  • Как увеличить количество отзывов UITouch?

    Flanker_4
    @Flanker_4
    Скорей всего Вы в методе touchesMoved пытаетесь "рисовать", что съедает ресурсы и программа начинает спотыкаться. попробуйте удалить код рисования и посмотрите, участился ли вызов метода. если это так, то тогда в методе touchesMoved просто запоминаете координаты , а парарллельно уже по тайиеру(или каким-то другим способом) запускаете перерисовку экрана, опытным путем подобрав частоту.
    Ответ написан
  • Где взять устройства для тестирования android приложений?

    Flanker_4
    @Flanker_4
    уже как-то советовал... можно попробовать сходить в какой-то магазин бытовой техники. там, как правило, есть столы где можно поиграться с планшетами/телефонами. берем, втихую ставим приложение (вроде же можно на андроид?)
    плюс где-то тут по соседству (сейчас не могу найти) был вопрос о сервисах, помогающих в тестировании моб. приложений
    Ответ написан
    1 комментарий
  • Как программно очистить кэш в (Sandbox/Library/Caches) в ios7?

    Flanker_4
    @Flanker_4
    1) Попробуйте удалять не всю папку, а ее содержимое
    2) Вы уверены, что Вам нужна папка с кэшем, а не временная папка (Temp), имхо там логичней бы смотрелись данные, которые удаляются. хотя....
    Ответ написан
  • Как обработать ошибку, когда сайт, к которому обращается программа, недоступен?

    Flanker_4
    @Flanker_4
    Возможно Вы забыли вызвать startNotifier
    т.е. код должен выглядеть так
    _hostReachable = [Reachability reachabilityWithHostName: host];
     [_hostReachable startNotifier];


    Ну и плюс ко всему, он там бросает нотификацию kReachabilityChangedNotification
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];

    на которую следует ориентироваться как-то так

    -(void) checkNetworkStatus:(NSNotification *)notice
    {
        //Проверяем есть ли доступ в интернет.
        NetworkStatus internetStatus = [_internetReachable currentReachabilityStatus];
        if (internetStatus==NotReachable) {
           ....
        }
        ...
     }
    Ответ написан
    Комментировать
  • Какую модель телефона выбрать для разработки под Windows Phone?

    Flanker_4
    @Flanker_4
    Ну вот доступная статистика продаж в сети
    4pda.ru/2014/02/02/139065
    Все указывает на 520(525)
    Ответ написан
    1 комментарий
  • Как реализовать выдергивание ссылок из Mail 7.1 OS X Maveriks?

    Flanker_4
    @Flanker_4
    Есть в мак ос такой инструмент - Automator. С помощью него, мне кажется, это не сложно сделать, в основном прийдется ведь программировать мышкой
    stackoverflow.com/questions/17970080/how-to-get-ma...
    Вот пример с получением письма из меил апп.
    Ответ написан
    Комментировать
  • Реализация теста для iOS?

    Flanker_4
    @Flanker_4
    а зачем то 20 контроллеров?
    Обычно на сцену добавляется один UIScrollView (с включенным пейджингом), в него суется два (три) контроллера, отображающих по вопросу и дальше во время перелистывания пользователем они тусуются, как колода карт (эдакий аналог UITableView но с одной видимой ячейкой на экран)

    Да и вообще, для вашей задачи просто идеально подходит UIPageViewControllerClass
    Ответ написан
    Комментировать
  • Как определить системное время в OS X?

    Flanker_4
    @Flanker_4
    Вообще есть куча роликов на ютубе где рассказывают и показывают как можно быстро сделать часы. Погуглите objective-c clock tutorial или как-то так.
    Получение текущего времени - [NSDate date]
    Обновление - "шедулите" NSTimer с интервалом в 1(или сколько там Вам нужно) секунду , получаете [NSDate date] и перерисовываете UI
    Ответ написан
    Комментировать
  • Как остановить UIActivityIndicatorView?

    Flanker_4
    @Flanker_4
    1) все же stopAnimation
    2) outlet не установлен
    Ответ написан
    Комментировать
  • Почему Bamboo stylus плохо работает с iPad mini?

    Flanker_4
    @Flanker_4
    Ответ написан
    Комментировать
  • Есть ли способ для отключения прокрутки tableview?

    Flanker_4
    @Flanker_4
    Если я Вас правильно понял, то Вам нужно установить свойство bounces в NO. Можно прямиком в Interface Builder'e, или кодом:
    tableView.bounces = NO;
    Без примера проекта сложно сказать точнее

    Хотя, имхо, это делает прокрутку "деревянной" и я бы не отключал.

    P.S. судя по скриншоту у Вас там какая-то лажа с иерархией вьюшек, ибо видно, что ячейки 1/2/3 не скролятся дальше, а вот пн/вт/ скролятся. И bounces всего лишь скроет симптомы, но не исправит проблему...
    Ответ написан
    Комментировать
  • Работа с NSManagedObject в разных тредах с помощью MagicalRecords?

    Flanker_4
    @Flanker_4
    В MR специально для этого есть набор методов

    /* For all background saving operations. These calls will be sent to a different thread/queue.
     */
    + (void) saveWithBlock:(void(^)(NSManagedObjectContext *localContext))block;
    + (void) saveWithBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(MRSaveCompletionHandler)completion;
    
    /* For saving on the current thread as the caller, only with a seperate context. Useful when you're managing your own threads/queues and need a serial call to create or change data
     */
    + (void) saveWithBlockAndWait:(void(^)(NSManagedObjectContext *localContext))block;
    
    /*
     If you want to reuse the context on the current thread, use these methods.
     */
    + (void) saveUsingCurrentThreadContextWithBlock:(void (^)(NSManagedObjectContext *localContext))block completion:(MRSaveCompletionHandler)completion;
    + (void) saveUsingCurrentThreadContextWithBlockAndWait:(void (^)(NSManagedObjectContext *localContext))block;


    Т.е. то что Вы хотите сделать:
    //пишу по памяти, могу где-то ошибиться
    [MagicRecord saveWithBlock:^(NSManagedObjectContext *localContext){
        Artist *artist = [Artist createInContext: localContext];
        artist.title = @"Eminem";
    
           Album *album = [Album createInContext: localContext];
            album.title = @"Album 1";
    
            [artist addAlbumObject:album]; //этот метод, или подобный ему должен автоматически сгенерироваться если Вы правильно генерируете классы Artist|album
    }];
    Ответ написан
    2 комментария
  • NSUTF8StringEncoding неверно декодирует, как исправить?

    Flanker_4
    @Flanker_4
    Ну вот опять же, Вы привели всего лишь маааааленькую часть кода, и нам теперь сиди гадай, я вообще удивлен , что @corristo решил откликнуться :D

    Если все остальное ок, как Вы говорите, то возможно проблема в buf? В нем точно выделяется нужный размер?
    а еще вот сюда стоит заглянуть stackoverflow.com/questions/9701776/nsutf8stringen... мало ли, может там и правда не UTF (там есть пример кода, позволяющий посмотреть кодировку, и поддерживается ли она вообще)

    You say that it “is definitely UTF-8”, but without a Content-Type header, you don't really know that. (And even if you did have a header saying that, it could still be wrong.)

    My guess is that your data is usually ASCII, which always parses correctly as UTF-8, but you sometimes are trying to parse data that's actually encoded in ISO 8859-1 or Windows codepage 1252. Such data will generally be mostly ASCII, but with some bytes outside the 0–127 range ASCII defines. UTF-8 would expect such bytes to form a sequence of code units within a specified sequence of ranges, but in other encodings, any byte, regardless of value, is a complete character on its own. Trying to interpret non-ASCII non-UTF-8 data as UTF-8 will almost always get you either wrong results (wrong characters) or no results at all (cannot decode; decoder returns nil), because the data was never encoded in UTF-8 in the first place.

    You should try UTF-8 first, and if it fails, use ISO 8859-1. If you're letting the user retrieve any web page, you should let them change the encoding you use to decode the data, in case they discover that it was actually 8859-9 or codepage-1252 or some other 8-bit encoding.

    If you're downloading the data from a specific server, and especially if you have influence on what runs on that server, you should make it serve up an accurate Content-Type header and/or fix whatever bug is causing it to serve up text that isn't in UTF-8.

    Из того же SO. Так что скорей всего у Вас не UTF
    Ответ написан
    1 комментарий