Navigasjon stabel overvåking

stemmer
0

Kan noen fortelle meg hvorfor denne sammenligningen holder gjør fryse og krasje min app?

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;
}
Publisert på 11/01/2010 klokken 10:56
kilden bruker
På andre språk...                            


3 svar

stemmer
1

[ViewControllerArray objectAtIndex: parentViewControllerIndex] skal returnere en forekomst av UIViewController underklasse. Sørg for at den reagerer på -stringValue eller (forutsatt FromAddressController er en klasse navn) gjør det så:

if([[viewControllerArray objectAtIndex:parentViewControllerIndex] class] == [FromAddressController class])
Svarte 11/01/2010 kl. 11:10
kilden bruker

stemmer
1

Hvis du legger til:

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

etter linje:

NSUInteger parentViewControllerIndex = [viewControllerArray count] - 3;

Hvilken verdi ser du i konsollen?

Svarte 11/01/2010 kl. 11:00
kilden bruker

stemmer
0

Også denne linjen:

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

ser mistenkelig til meg.

Jeg sjekket dokumentasjonen og UIViewControllerklassen ikke synes å ha en -stringValuemetode. Slik at du sannsynligvis vil få et ukjent velger unntak, og søknaden vil krasje.

Kanskje du mener nibNamei stedet for stringValue?

Svarte 11/01/2010 kl. 11:04
kilden bruker

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