的使用我有一個看起來像這樣的方法:的UIViewController:未聲明的標識符
- (void)testMethod:(int)myNumber {
switch (myNumber) {
case 0: {
MyViewController0 *controller = [self.myViewControllers objectAtIndex:myNumber];
if ((NSNull *)controller == [NSNull null]) {
controller = [[MyViewController0 alloc] initWithNibName:@"MyView0" bundle:nil];
controller.aVariable = self.myVariable;
[self.myViewControllers replaceObjectAtIndex:myNumber withObject:controller];
[controller release];
}
if (controller.view.superview == nil) {
// do some stuff with controller ...
}
break;
}
case 1: {
MyViewController1 *controller = [self.myViewControllers objectAtIndex:myNumber];
if ((NSNull *)controller == [NSNull null]) {
controller = [[MyViewController1 alloc] initWithNibName:@"MyView1" bundle:nil];
[self.myViewControllers replaceObjectAtIndex:myNumber withObject:controller];
[controller release];
}
if (controller.view.superview == nil) {
// do some stuff with controller ...
}
break;
}
// ...
}
}
我的問題涉及到這些線路,這都是一樣的:
if (controller.view.superview == nil) {
// do some stuff with controller ...
}
所以,我想刪除這些線在開關盒內,並將它們放在方法的末尾。
問題是,如果我這樣做,我得到的錯誤:Use of undeclared identifier controller
。 我認爲這是因爲有可能controller
可能保持未申報(如果沒有成功)。
但我能做些什麼來避免把這些線在每一個case語句,可我反而把它一旦在方法的結束?
這工作正常!謝謝。 – Tim 2011-05-07 13:59:18