Objective c 不同方法中的变量值
我的问题很简单(对不起,我是英语,我会说西班牙语) 我有Objective c 不同方法中的变量值,objective-c,variables,Objective C,Variables,我的问题很简单(对不起,我是英语,我会说西班牙语) 我有 NSString *ClaseUsuario; 及 我有一个改变变量值的方法 -(IBAction)setLabelEdad{ int val=(int)[botonEdad value]; if(val>0 && val<22){ClaseUsuario=@"C";} if(val>=22 && val<35){ClaseUsuario=@"B";} if(val>=35)
NSString *ClaseUsuario;
及
我有一个改变变量值的方法
-(IBAction)setLabelEdad{
int val=(int)[botonEdad value];
if(val>0 && val<22){ClaseUsuario=@"C";}
if(val>=22 && val<35){ClaseUsuario=@"B";}
if(val>=35){ClaseUsuario=@"A";}
NSLog(ClaseUsuario);
}
我需要保存上述方法指定的值,请帮助!非常感谢这里有几件事需要解决: 为属性使用前导小写字母:
claesuario
。这对KVC很重要
根本不要申报ivar。只用
@syntheisze claseUsuario=_claseUsuario;
(请注意前导下划线。除非您是为非常旧的系统编写的,否则很少有理由再显式声明实例变量。)
除了在init
和dealloc
中,始终使用访问器。所以这应该是self.claesuario=@“C”代码>。这将确保内存管理正常工作
通常,您的NSLog
应采用以下形式:
NSLog(@"Ofertas usario tipo: %@", self.claseUsuario);
不要用前导的集合
命名您的iAction
。这可能会混淆KVC,因为它看起来像一个访问器
问题的实际原因可能是从未调用过setLabelEdad
,或者您在其他地方清除了claesuario
,或者您看到了错误的对象。在setLabelEdad
中放置一个断点来测试这些属性。您好,非常感谢。按我说的做,但不维护变量的值。您检查了值是否已实际设置,然后未设置,以及self在这两种情况下是否相同?请在其他日志语句之前立即记录以下内容:NSLog(@“我是%@”,self)
@syntheisze claseUsuario=_claseUsuario;
NSLog(@"Ofertas usario tipo: %@", self.claseUsuario);