【发布时间】:2014-02-20 00:03:37
【问题描述】:
请记住,我是 Objective C 编码的新手,很多概念都不懂。
我有 2 节课必须互相交流。 Class1 声明一个字符串变量,Class2 读取它。我不确定解决此问题的最佳方法,但经过一些研究,这就是我所拥有的。
错误是当我访问 Class2 中的变量时,该变量为 (null)。
Class1.h
static NSString *var;
@interface Class1 : UIViewController {
//other variables
}
@property(nonatomic, retain) NSString *var;
@end
Class1.m
@implementation Class1
@synthesize var;
-(void)buttonAction:(UIButton*)sender;
{
var = @"some generated variable";
//after setting the variable I immediately call Class2
}
Class2.h
@interface Class2 : UIViewController {
NSString *var2;
}
@end
Class2.m
#import "Class1.h"
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
Class1 *obj = [[Class1 alloc] init];
var2 = obj.var;
NSLog(@"%@", var2);
//this print statement is (null)
}
我只是不确定我哪里出错了。如果我的代码有任何不清楚的地方,请告诉我。
【问题讨论】:
-
您正在创建
Class1的新实例,您没有引用保存该变量的实例。您将需要传递Class1的实例,您已将变量设置为Class2
标签: objective-c variables public