Navigációs verem megfigyelési

szavazat
0

Tud valaki mondani, hogy miért ez az összehasonlítás tartja, hogy az én app befagyasztása és összeomlik?

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;
}
A kérdést 11/01/2010 11:56
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
1

[ViewControllerArray objectAtIndex: parentViewControllerIndex] vissza kell adnia egy példánya UIViewController alosztály. Győződjön meg róla, hogy reagál -stringValue vagy (feltételezve FromAddressController egy osztály neve), hogy úgy:

if([[viewControllerArray objectAtIndex:parentViewControllerIndex] class] == [FromAddressController class])
Válaszolt 11/01/2010 12:10
a forrás felhasználó

szavazat
1

Ha hozzá:

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

után a következő sort:

NSUInteger parentViewControllerIndex = [viewControllerArray count] - 3;

Milyen értéket látsz a konzolt?

Válaszolt 11/01/2010 12:00
a forrás felhasználó

szavazat
0

Továbbá, ez a sor:

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

gyanús nekem.

Megnéztem a dokumentáció és a UIViewControllerosztály nem úgy tűnik, hogy a -stringValuemódszer. Így valószínűleg kap egy fel nem ismert választó kivételt, és az alkalmazás összeomlik.

Talán azt jelenti nibNamehelyett stringValue?

Válaszolt 11/01/2010 12:04
a forrás felhasználó

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