我类有成员__strong NSError *authError;我想在一种方法中捕获并创建它,然后在另一种方法中 checkin 。
因此,如果方法1中发生错误:

if([returnString rangeOfString:@"dd"].location != NSNotFound) {
        NSMutableDictionary *errorDetail = [NSMutableDictionary dictionary];
        [errorDetail setValue:@"Wrong user crediantials" forKey:NSLocalizedDescriptionKey];
        authError = [NSError errorWithDomain:@"mydomain" code:101 userInfo:errorDetail];

        return nil;
    }

我直接将其分配给authError类成员。但是在执行最后一个breket之后,authError变为nil。
在方法2中:
if(authError != nil){
        return NO;
    }

条件返回是

一些其他信息:方法2是shouldPerformSegueWithIdentifier有人可以给我提示吗?

最佳答案

这里的问题与单词“之后”的定义有关。您将在方法1中设置实例变量,并在方法2中将其获取。但这并不能告诉您操作的真实顺序。如果碰巧在方法1有机会运行之前调用了方法2,则方法2将发现您的实例变量为nil(因为这是其自动初始化的值)。

我的书有一个riff on this very topic(通过“入口点”,我的意思是运行时调用的方法):

09-25 22:30