我刚开始在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',我希望有人可以帮助我
答案 0 :(得分: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);
}