2013-09-09 2 views
0

У меня возникла странная проблема с Core Data. Целевой является прошивкой 5.0executeFetchRequest завершает текущий метод

Эта строка кода:

NSArray *results = [self executeFetchRequest:request error:&error]; 

выходит из текущего метода. После этой строки код не выполняется. Приложение не сбой. Никакие исключения не выбрасываются. Иногда это случается не каждый раз.

Как только я перехожу через код и ударяю по этой строке, он просто возвращается из текущего метода.

Любые подсказки, подсказки и т. Д.?

Спасибо за ваше время.

+0

Вы пытались приостановить выполнение и посмотреть, что происходит в стеке вызовов? –

+0

ошибка, которую я обычно делаю: обязательно ошибка nil –

+0

Не знаю, если вы уже обнаружили ошибку. В противном случае, это происходит из многих вещей, например, если это выполняется в отдельном потоке, поток будет убит, и вы никогда не получите информацию. И приложение не падает. – Leonardo

ответ

1

Как указано в комментарии, выборка, вероятно, выполняется в отдельном потоке. Это объясняет, почему приложение не сбой.

Не видя кода, авария может быть вызвана неправильным запросом на выборку, возможно, в его синтаксисе.

Попробуйте установить точку останова и, по крайней мере, распечатать инструкцию, например, с помощью po request в консоли или NSLog(yourStatament) вы должны быть в состоянии увидеть весь оператор. Посмотрите, если что-то есть nil.

Кроме того, я вижу, что вы используете self в своем примере выполнения. Если это отдельный поток, я бы, вероятно, нашел бы хорошую ссылку на self, чтобы предоставить ресурсы основного потока. Но это просто догадка.