Ошибка в iPhone Simulator 5.1 с Xcode 4.5 с использованием UIManagedDocument

У меня очень странная проблема, которую я пытался решить последние два дня... У меня был фрагмент кода, который отлично работал на Xcode 4.4 и iOS 5.1 Simulator с использованием 5.1 SDK. После того, как я обновился до Xcode 4.5 и SDK 6.0, мой код перестал работать в симуляторе iOS 5.1... хотя он отлично работает в симуляторе iOS 6.0. Были какие-то изменения, о которых я не знаю?

Это код:

- (void)useDocument
{
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self.database.fileURL path]]){
        [self.database saveToURL:self.database.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){
            [self setupFetchedResultsController];
    }];
    } else if (self.database.documentState == UIDocumentStateClosed){
        [self.database openWithCompletionHandler:^(BOOL success){
            [self setupFetchedResultsController];
        }];          
    } else if (self.database.documentState == UIDocumentStateNormal) {
        [self setupFetchedResultsController];
    }
}

По какой-то причине saveToURL и openWithCompletionHandler никогда не возвращаются в симуляторе 5.1. Кто-нибудь знает, почему?


person Breno Gazzola    schedule 24.09.2012    source источник
comment
Я рад, что нашел ваш вопрос, потому что у меня точно такая же проблема, и я только что узнал, что это проблема с Симулятором 5.1. Я предполагаю, что ваш код также основан на курсе Stanford 2011 (на это намекают методы useDocument).   -  person brainray    schedule 25.09.2012
comment
Да, моя установка UIManagedDocument — это копирование и вставка из кода Пола. Единственное отличие состоит в том, что в пару строк добавляется поддержка облегченной миграции.   -  person Breno Gazzola    schedule 25.09.2012
comment
У меня такая же проблема. Нашли ли вы какие-либо решения этой проблемы? Спасибо!   -  person Yan    schedule 04.10.2012
comment
Еще не Ян, но, как упоминали другие люди, если вы запустите его на устройстве, он будет работать нормально. По какой-то причине у меня все еще были проблемы, если я запускал устройство с помощью Xcode, поэтому мне пришлось установить приложение (использовал TestFlight).   -  person Breno Gazzola    schedule 04.10.2012
comment
Вы, ребята, установили Xcode 4.5.1? Мне кажется, что эта ошибка все еще существует: симуляторы 5.0 и 6.0 работают, но на симуляторе 5.1 обработчик завершения все еще не вызывается.   -  person brainray    schedule 10.10.2012


Ответы (3)


У меня такая же проблема с iPhone Simulator 5.1. Файл создается спустя долгое время (30 секунд). Но обработчик завершения никогда не вызывается. Вы пробовали это на устройстве?

РЕДАКТИРОВАТЬ: это кажется ошибкой в ​​iOS Simulator 5.1. Я скомпилировал код на своем старом iPad с iOS 5.1.1, и он работал без ошибок!

person FrankZp    schedule 25.09.2012
comment
Я сделал тест один раз, и это не сработало. Но так много людей говорят мне, что это только симулятор, что теперь мне интересно, не было ли в моем коде другой ошибки, когда я тестировал. - person Breno Gazzola; 25.09.2012

Не могу сказать за ваш проект, но здесь точно был Xcode 4.5.

У меня есть копия Xcode 4.3.1 с Simulator 5.1 на виртуальной машине, и знаете что: она работает безупречно

-> Xcode4.3.1/Simulator5.1 работает!

-> Xcode4.5/Simulator5.1 неисправен

-> Xcode4.5.1/Simulator5.1 неисправен

В качестве обходного пути вы можете загрузить версию 5.0 симулятора в Xcode -> Настройки -> Загрузки. Тот работает.

person brainray    schedule 25.09.2012
comment
Симулятор XCode 4.5.2 iOS 5.1 не работает, симулятор iOS 5.0 (и симулятор 6.0) работает. Спасибо. - person Joe; 14.01.2013

Не думаю, что проблема в симуляторе. У меня была точно такая же проблема (приложение работает на 6.0, но не на 5.x), и я также пытался запустить его на устройстве, и все происходит точно так же. (Я объяснил свою проблему здесь)

Моя проблема возникает как в 5.0, так и в 5.1. Например, я даже не могу правильно запустить шаблон «Приложение Master-Detail» в любом симуляторе iOS 5.x, но он отлично работает в 6.0. Даже если я попробую этот шаблон на устройстве, он не будет работать должным образом. Так что я действительно считаю, что проблема в XCode 4.5.

person fabioalmeida    schedule 10.10.2012
comment
Пожалуйста, перечитайте вопрос и ответы: проблема, описанная здесь, связана с симулятором 5.1. Ваша проблема связана с iOS 5.x и iOS 6.0. - person brainray; 15.10.2012
comment
В исходном вопросе говорится о проблеме, аналогичной моей. Пользователь может запустить его в симуляторе 6.0, но не в 5.1 после обновления XCode 4.5, как и я. - person fabioalmeida; 15.10.2012