2016-08-05 44 views
0

Ich habe ein Problem, bei dem ein Absturz nur auftritt, wenn die Anwendung über HockeyApp installiert wird, nicht über Xcode.Absturz, der nur über Hockeyapp-Builds auftritt?

Dies ist der Bericht, den ich von HockeyApp erhalten:

*** App beenden aufgrund nicht abgefangene Ausnahme 'NSRangeException', Grund: ‚- [__ NSCFArray objectAtIndex:]: Index (-1970199490 (oder möglicherweise größer)) über Grenzen (15)‘ MainViewController.m, Linie 646

dem aus auf diese bezieht sich:

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

Irgendwelche Ideen, warum ich würde einen Absturz dort bekommen, wenn ein Build über HockeyApp installiert, aber nicht über Xcode? Ich habe sogar versucht, die App auf einem Gerät zu erstellen, das sowohl Entwicklungs- als auch Distributionskriterien verwendet, aber beide funktionieren gut, solange der Build nicht über HockeyApp installiert wird.

+1

in der for-Schleife sollen wir nicht i-Wert initialisieren? Wie, int i = 0! –

+0

Wow, das hat es behoben! Guter Fang. Bitte füge das als formale Antwort hinzu, damit ich es als richtig markieren kann :) – arcade16

Antwort

2

Ich denke, das Problem wäre nicht den Wert des i in der for-Schleife zu initialisieren.

soll es for (int i=0;....

sein, wenn es nicht initialisiert wird, dann wird der Wert von i unberechenbar sein würde, es entweder null sein könnte oder es könnte der Wert seiner Speicheradresse sein.

, wenn Sie es nicht initialisiert hat, dann wird es Endlosschleife sein (wenn kein Absturz) hier als der Wert von i wird einige zufällige negative Zahl -1970199490, auch

sein, auch wenn Sie es tun aus xcode ergibt sich das gleiche Verhalten.