2013-04-28 3 views
3

Xcode 4.6.1 с iOS 6.1. Я использую удаленную базу данных с помощью StackMob. Приложение сначала дает ошибку, и после того, как я нажму «Играть» несколько раз, он работает нормально и прекрасно взаимодействует с сервером. Не знаете, как определить проблему, и если это будет проблемой?XCode: Исключение. Как определить причину?

У меня есть следующие исключения Break Point установки:

enter image description here

запускается приложение, а затем останавливается на следующей строке: enter image description here

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"email == %@", self.emailAddressField.text]; 
    [fetchRequest setPredicate:predicate]; 

    NSError *error = nil; 
    NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error]; 

поэтому я изменил строку выше:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
     NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext]; 
     [fetchRequest setEntity:entity]; 

     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username == %@", self.usernameField.text]; 
     [fetchRequest setPredicate:predicate]; 

     [managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *fetchedObjects) 
      { 

Теперь, когда я запускаю программу, я получаю следующее сообщение об ошибке:

enter image description here

с

enter image description here

так я нажимаю кнопку воспроизведения

и я получаю следующее сообщение об ошибке :

enter image description here

и после того, как я нажму игру еще раз, приложение продолжает работать, как будто ничего не произошло? Должен ли я быть обеспокоен?

+0

Просим опубликовать свой код в виде текста , а не изображения. – Linuxios

+0

Я добавил код как можно больше, но я думаю, что мне действительно нужны иллюстрации для иллюстрации. – user1107173

+1

@ user1107173 +1 для изображений! – Undo

ответ

4

Вы можете проверить, что такое исключение, с помощью простой команды lldb, как только отладчик остановится на исключении. Выберите исключение, как в вашей теме 6 здесь:

enter image description here

А затем, если вы работаете на типа тренажера:

po $eax 

Если вы работаете на устройстве:

po $r0 (for 32-bit) 
po $x0 (for 64-bit) 

Вы должны получить описание исключения.

+0

Выучьте что-нибудь новое каждый день. Спасибо. Я отмечу как ответ, как только мой период ожидания истечет 6 минут. – user1107173

1

Вы уже имели этот код:

NSError *error = nil; 
NSArray *fetchedObjects = 
    [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error]; 

Так все, что вам нужно, чтобы продолжать идти (без останова) и позволить ошибки войти себя:

if (!fetchedObjects) 
    NSLog(@"%@", error.localizedDescription); 
Смежные вопросы