2016-08-05 2 views
0

У меня проблема, когда авария возникает только тогда, когда приложение установлено через HockeyApp, а не через Xcode.Ошибка, которая возникает только через хоккейные сборки?

Это отчет я получаю от HockeyApp:

*** Нагрузочного приложения из-за неперехваченное исключение 'NSRangeException', причина: «- [__ NSCFArray objectAtIndex]: индекс (-1970199490 (или, возможно, больше)) за оценки (15)» MainViewController.m, линия 646

что относится к этой линии:

for (int i; i < [resultsArray count]; i++) { 
    if ([[resultsArray[i] valueForKey:@"uniqueId"] isEqualToString:[[NSUserDefaults standardUserDefaults] 
                  stringForKey:@"FbId"]]) { 
     resultsArray = resultsArray[i]; 
    } 
} 

Любые идеи, почему я бы получать аварии там, когда сборка устанавливается с помощью HockeyApp, но не через Xcode? Я даже пытался создать приложение для устройства, используя как сертификаты разработки, так и дистрибутивы, но оба они работают нормально, пока сборка не установлена ​​через HockeyApp.

+1

В цикле for мы не должны инициализировать значение i? Например, int i = 0! –

+0

Ничего себе, это исправлено! Хороший улов. Пожалуйста, добавьте это как официальный ответ, чтобы я мог отметить его как правильно :) – arcade16

ответ

2

Я думаю, что проблема не будет инициализировать значение i в цикле for.

должно быть for (int i=0;....

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

если вы не инициализирует его, то будет бесконечный цикл (если нет аварии) здесь значение I будет какое-то случайное отрицательное число -1970199490,

Кроме того, даже если вы это делаете от xcode, это приводит к такому же поведению.