从另一个void获取变量值

从另一个void获取变量值

问题描述:

我刚开始在XCode中编程,我需要您的帮助。 我有两个空隙;在第一个void中创建一个NSString,而在第二个void中,我需要该字符串的值,但我不知道如何获取该值。从另一个void获取变量值

这是我的.h文件的shortend版本

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

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

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

    -(void)ActionTwo 
    { 
     NSLog (@"%@", VarString); 
    } 

我的问题是,NSLog的输出是“空”,我希望有人能帮助我

+1

这是 “方法”,而不是 “空隙”。 'void'是方法的返回类型。如果您通过返回类型调用您的方法,您会混淆人。 :) – 2013-04-05 21:03:44

您已经声明了一个局部变量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); 
} 
+0

谢谢,我已经知道我需要声明属性, 但我不知道我需要替换 'NSString * VarString = @“hello”;' 'self.varString = @“hello”;'谢谢! – Berendschot 2013-04-06 06:26:57