Navigationsstapel Überwachung

stimmen
0

Kann mir jemand sagen, warum dieser Vergleich meine app machen Einfrieren und Absturz hält?

NSArray *viewControllerArray = [controlFromMap.navigationController viewControllers];
NSUInteger parentViewControllerIndex = [viewControllerArray count] - 3 // or - whatever;
NSLog(@Parent view controller: %@, [viewControllerArray objectAtIndex:parentViewControllerIndex]);



if([[[viewControllerArray objectAtIndex:parentViewControllerIndex]stringValue] isEqualToString: @FromAddressController]){

    _mapView.showsUserLocation = NO;
}
else{

_mapView.showsUserLocation = YES;
}
Veröffentlicht am 11/01/2010 um 11:56
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

[ViewControllerArray objectAtIndex: parentViewControllerIndex] sollte eine Instanz von UIViewController Unterklasse zurück. Stellen Sie sicher, reagiert sie auf -stringValue oder (FromAddressController Annahme, daß ein Klassenname) machen es so:

if([[viewControllerArray objectAtIndex:parentViewControllerIndex] class] == [FromAddressController class])
Beantwortet am 11/01/2010 um 12:10
quelle vom benutzer

stimmen
1

Wenn Sie hinzufügen:

NSLog(@"parentViewControllerIndex: %d", parentViewControllerIndex);

nach der Zeile:

NSUInteger parentViewControllerIndex = [viewControllerArray count] - 3;

Welchen Wert sehen Sie in der Konsole?

Beantwortet am 11/01/2010 um 12:00
quelle vom benutzer

stimmen
0

Auch diese Zeile:

if([[[viewControllerArray objectAtIndex:parentViewControllerIndex]stringValue] isEqualToString: @"FromAddressController"]){

sieht mir verdächtig.

Ich habe die Dokumentation und die UIViewControllerKlasse scheint keine haben -stringValueMethode. So werden Sie wahrscheinlich einen nicht erkannten Selektor Ausnahme erhalten und Ihre Anwendung abstürzt.

Vielleicht meinen Sie nibNamestatt stringValue?

Beantwortet am 11/01/2010 um 12:04
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more