2015-03-24 3 views
1

Я пытаюсь отладить журнал сбоев, который я получил от Flurry Analytics, но я не вижу проблемы. Это трассировки стека:_objc_exception_throw/crash/stack trace

0 CoreFoundation      0x181f36530 <redacted> + 132 
1 libobjc.A.dylib      0x192f0c0e4 _objc_exception_throw + 60 
2 CoreFoundation      0x181e248e8 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 420 
3 CoreFoundation      0x181e3ff44 +[NSDictionary dictionaryWithObject:forKey:] + 60 
4 memono        0x10005f96c -[AppDelegate iCLoudSyncCheckNotificationSync:] + 1244 
5 CoreFoundation      0x181edcddc <redacted> + 20 
6 CoreFoundation      0x181e1b370 __CFXNotificationPost + 2060 
7 Foundation       0x182d3f520 -[NSNotificationCenter postNotificationName:object:userInfo:] + 72 
8 memono        0x10005c02c -[AppDelegate syncWithCompletion:] + 660 
9 libdispatch.dylib     0x19355d994 <redacted> + 24 
10 libdispatch.dylib     0x19355d954 <redacted> + 16 
11 libdispatch.dylib     0x19356220c __dispatch_main_queue_callback_4CF + 1608 
12 CoreFoundation      0x181eee2ec <redacted> + 12 
13 CoreFoundation      0x181eec394 <redacted> + 1492 
14 CoreFoundation      0x181e191f4 _CFRunLoopRunSpecific + 396 
15 GraphicsServices     0x18b23b6fc _GSEventRunModal + 168 
16 UIKit        0x1867aa10c _UIApplicationMain + 1488 
17 memono        0x100099b7c -[UpdatePromtRateViewController .cxx_destruct] + 220 
18 libdyld.dylib      0x19358aa08 <redacted> + 4 

Я также получил некоторые другие аварии, и он всегда начинается с [UpdatePromtRateViewController ...] Это просто ViewController я показываю сразу после обновления приложения ПРОМТ пользователей, чтобы проголосовать приложение. Существует кнопка, которая закрывает мое приложение и ведет прямо к моему приложению в приложении App Store. Может быть, это не «настоящий крах», и я получаю этот журнал сбоев только потому, что приложение сразу заканчивается этой кнопкой? Или это связано с тем, что словарь? Может быть, я положил нулевые объекты? Могу ли я решить это, сделав что-то вроде: - объединить слова с выражением «если объект не ноль»?

Я не очень хорош в чтении следов стека, и было бы здорово, если бы кто-нибудь мог дать мне подсказку, что этот журнал сбоев пытается сказать мне!

Спасибо за помощь!

EDIT

Там нет других сообщений даются Flurry аналитика ... Что я делаю, чтобы настроить все локальные уведомления снова, чтобы получить этот номер значка значка сортировки ... он работает нормально и странно Дело в том, что [UpdatePromtRateViewController] всегда появляется в этом журнале сбоев, и я использую его только один раз, поэтому без него должны быть другие журналы сбоев - [UpdatePromtRateViewController], потому что я использую это только один раз при первом запуске приложения, а затем никогда больше. . Вот код для того, что я делаю там

NSEntityDescription *entityDescriptionDelegate = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:self.managedObjectContext]; 
    NSFetchRequest *requestData = [[NSFetchRequest alloc] init]; 
    [requestData setEntity:entityDescriptionDelegate]; 
    NSError *error; 


    NSArray *objectsArray = [self.managedObjectContext executeFetchRequest:requestData error:&error]; 


    for (NSManagedObject *object in objectsArray) { 



     if (!([object valueForKey:@"alarmDate"] == nil)) { 


      _badge += 1; 


      UILocalNotification *alarm = [[UILocalNotification alloc] init]; 
      alarm.applicationIconBadgeNumber = _badge; // 1; 
      alarm.applicationIconBadgeNumber = 0; 
      alarm.timeZone = [NSTimeZone defaultTimeZone]; 

      NSString *alarmTitleString = [[NSString alloc] initWithString:[object valueForKey:@"alarmTitle"]]; 

      alarm.alertBody = alarmTitleString; 
      alarm.fireDate = [object valueForKey:@"alarmDate"]; 
      alarm.soundName = UILocalNotificationDefaultSoundName; 
      NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[object valueForKey:@"alarmID"] forKey:@"ID"]; 

      alarm.userInfo = userInfo; 
      [[UIApplication sharedApplication] scheduleLocalNotification:alarm]; 

      [object setValue:@"yes" forKey:@"alarmSet"]; 


      [UILocalNotification setBadge]; 

      alarm.applicationIconBadgeNumber = 0; 
+0

Что говорит текст исключения? –

+0

Должно быть сообщение об исключении, которое даст вам лучшее представление о том, что происходит - я не знаю Flurry Analytics, но они действительно должны предоставить это вам. Похоже, вы делаете словарь с одним элементом в нем в делетете приложения? Проверьте свои данные перед входом, [NSNull null] вместо nil (или вообще не заполняется). – KirkSpaziani

ответ

2

Этот метод сбой: iCLoudSyncCheckNotificationSync: и, как вы догадались, скорее всего, потому что вы передаете nil за ключ.

Трассировка столкновения подразумевает много тяжелого подъема во время деструктора C++. Это обязательно провалится. Но след аварии может быть неправильным; вызов от деструктора к UIApplicationMain() кажется немного странным.

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

+0

thx для справки ... – Kreuzberg