这很好用:
NSString *myVariable;
- (IBAction) doFirstAction {
myVariable = @"123456789";
}
- (IBAction) doSecondAction {
NSLog(@"%@",myVariable);
}
但是,如果我这样做(用@“123456789”代替返回相同值的代码,即“123456789”),我无法访问doSecondAction中的值。
NSString *myVariable;
- (IBAction) doFirstAction {
myVariable = [imageNode getAttributeName:@"value"];
}
- (IBAction) doSecondAction {
NSLog(@"%@",myVariable);
}
关于为什么我无法在doFirstAction之外访问myVariable的任何线索?
答案 0 :(得分:2)
答案 1 :(得分:0)
另一种方法是定义一个为您保留的访问器方法。因此,在您的界面定义中:
@property (retain) NSString *myVariable;
以及稍后的实施:
@synthesize myVariable;
现在Xcode为您生成getter和setter方法,为您处理retain语句。但是,您现在需要使用点表示法,因为不会覆盖等号,并且除非您这样做,否则不会调用您的setter方法:
self.myVariable = [imageNode getAttributeName:@"value"];