Ios 从另一个void获取变量值

Ios 从另一个void获取变量值,ios,xcode,variables,call,void,Ios,Xcode,Variables,Call,Void,我刚开始用XCode编程,我需要你的帮助。 我有两个空洞;在第一个void中,我创建了一个NSString,在第二个void中,我需要该字符串的值,但我不知道如何获得该值 这是我的.h文件的短端版本 //.h file -(void)viewDidLoad { [self ActionOne]; } -(IBAction)ButtonClick (id):sender { [self ActionTwo]; } -(void)ActionOne { NSS

我刚开始用XCode编程,我需要你的帮助。 我有两个空洞;在第一个void中,我创建了一个NSString,在第二个void中,我需要该字符串的值,但我不知道如何获得该值

这是我的.h文件的短端版本

//.h file
-(void)viewDidLoad
{
  [self ActionOne];
}

-(IBAction)ButtonClick (id):sender
{
  [self ActionTwo];
}

    -(void)ActionOne
    {
      NSString *VarString = @"hello";
    }

    -(void)ActionTwo
    {
      NSLog (@"%@", VarString);
    }
我的问题是NSLog的输出为“null”,我希望有人能帮助我

您在
ActionOne
中声明了一个局部变量。它只在方法运行时存在。对于持久性存储,您需要一个ivar(这是Objective-C中使用的一个术语,意思是“实例变量”,它是一个变量,作为类实例的每个对象都有一个单独的副本)。最简单的方法是声明一个属性,它将创建一个ivar和方法来访问它进行读写。在.h文件中:

@interface MyViewController: UIViewController

@property (nonatomic, strong) NSString *varString;

// ... method declarations, etc

@end
然后在.m文件中:

-(void)actionOne
{
    self.varString = @"hello";
}

-(void)actionTwo
{
    NSLog(@"%@", self.varString);
}

这些是“方法”,而不是“空洞”
void
是方法的返回类型。如果按返回类型调用方法,会使人感到困惑。:)谢谢,我已经知道我需要声明属性,但是我不知道我需要替换'NSString*VarString=@“hello”;'使用'self.varString=@“hello”;'谢谢