0

我刚开始用 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',希望有人能帮助我

4

1 回答 1

2

您已在中声明了一个局部变量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);
}
于 2013-04-05T21:05:04.337 回答