Ios viewDidLoad中初始化的变量范围加载到另一个方法

Ios viewDidLoad中初始化的变量范围加载到另一个方法,ios,objective-c,xcode,Ios,Objective C,Xcode,在视图中,我有以下部分: UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActionSheetStyleBlackTranslucent]; [self.view addSubview:spinner]; [spinner startAnimating]; 这很好 但是在下面的:webViewDidFinishLoa

在视图中,我有以下部分:

    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActionSheetStyleBlackTranslucent];
    [self.view addSubview:spinner];
    [spinner startAnimating];
这很好

但是在下面的:webViewDidFinishLoad中,我有:


而且spinner的范围已经丢失。我还没有将spinner作为一个出口或一个财产/综合资产——仍在努力解决它。我认为一旦我得到了范围的处理,它应该使obj-c的能力更好

您需要将微调器设置为头文件中的实例变量,否则webViewDidFinishLoad将无法看到该变量。

您需要将微调器设置为头文件中的实例变量,否则webViewDidFinishLoad将无法看到该变量

而且spinner的范围已经丢失

微调器是一个局部变量。一旦代码到达声明后最近的右大括号,它就会消失。如果不希望发生这种情况,请将spinner设置为类或类扩展的实例变量

实例变量在接口声明或类扩展声明后的大括号内声明,例如:

// In the header file...
@interface MyClass {
    ...
    UIActivityIndicatorView *spinner;
}
...
@end

而且spinner的范围已经丢失

微调器是一个局部变量。一旦代码到达声明后最近的右大括号,它就会消失。如果不希望发生这种情况,请将spinner设置为类或类扩展的实例变量

实例变量在接口声明或类扩展声明后的大括号内声明,例如:

// In the header file...
@interface MyClass {
    ...
    UIActivityIndicatorView *spinner;
}
...
@end


在viewDidLoad中,为微调器设置标记

  spinner.tag = 90;
在webViewDidFinishLoad方法中,使用以下行

 UIActivityIndicatorView *activity =(UIActivityIndicatorView *) [self.view viewWithTag:90];
 [activity stopAnimating];
     or  declare spinner in .h file so that you can use it any where.

在viewDidLoad中,为微调器设置标记

  spinner.tag = 90;
在webViewDidFinishLoad方法中,使用以下行

 UIActivityIndicatorView *activity =(UIActivityIndicatorView *) [self.view viewWithTag:90];
 [activity stopAnimating];
     or  declare spinner in .h file so that you can use it any where.

谢谢你的评论!非常感谢,当它让我接受时,我会接受的!谢谢你的评论!非常感谢,当它让我接受时,我会接受的!