我知道有关SO中全局变量的各种帖子,但没有任何帮助。 我的问题是 - 在我的AppDelegate.h中,我声明了两个变量x和y。在我的ClassA中,我导入了AppDelegate.h并添加了:
AppDelegate mainDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
并将值分配给mainDelegate.x
和mainDelegate.y
。
在ClassB中,我将这些x和y指定为
label1.text = mainDelegate.x;
label2.text = mainDelegate.y;
没有错误,但它是null ..没有任何内容显示为标签的文本。
有人可以帮忙..
编辑: 在AppDelegate.h中:
@property (nonatomic, copy) NSString *x,*y;
在ClassA.m
mainDelegate.x=[[NSString alloc] initWithString:[homeArray objectAtIndex:indexPath.row]];
这个mainDelegate.x我试图从ClassB获取并且它是null。
答案 0 :(得分:1)
你应该使用
@property (nonatomic, copy) NSString *x,*y;
而不是
@property (nonatomic, retain) NSString x,y;
通过使用副本,您可以确保文本标签保持一致。保留意味着如果您在某处更改x和y的值,则文本标签也会更改。
答案 1 :(得分:-1)
将x和y变量设置为静态变量会有帮助吗?
static int x;
static int y;
编辑:
实际上,我注意到你要为UILabel(?)分配一个值。你有没有在分配值之前分配和初始化你的UILabel?这是获得空值的一个可能原因。