嗨和tnxs阅读。 test是一个NSString,它在我的ViewController viewDidLoad中声明和调用为:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *test = [[NSString alloc]init];
test = @"This is a Test";
}
但是,如果尝试在IBAction中使用test,则不会传递任何内容,而是获取NULL而不是测试字符串。
- (IBAction)changeLabel:(id)sender {
NSString *message = [NSString stringWithFormat:@"Hello, %@", test];
[self.simpleLabel setText:message];
[self.simpleTextField resignFirstResponder];
显然我遗漏了一些基本的东西,但不幸的是我无法在其他帖子中找到这个。 Tnxs提前。
答案 0 :(得分:2)
您可以在.h文件中添加NSString *test
等成员变量,并且只要您完成该任务,test
就可以通过您班级中的任何方法访问。
示例:
@interface MyClass : UIViewController {
NSString *test;
}
@end
并访问:
-(void)viewDidLoad {
test = @"test";
}
答案 1 :(得分:1)
夫妻俩。
您无需对alloc/init
说NSString
,您只需说someString = @"myString";
您应该创建一个属性,您可以在其中保留字符串以供将来使用,例如
@property (strong, nonatomic) NSString *someString;
然后在viewDidLoad
self.someString = @"Hello World";
最后,在您的IBAction
中,您可以说:
- (IBAction)changeLabel:(id)sender {
NSString *message = [NSString stringWithFormat:@"Hello, %@", self.someString];
[self.simpleLabel setText:message];
[self.simpleTextField resignFirstResponder];
}