在异步调用后读取UISwitch的状态
问题描述:
我有一个带有UISwitch的日志屏幕,让用户选择“记住我”,以便我可以根据需要将他/她的凭据存储在密钥链中。在异步调用后读取UISwitch的状态
只有当用户选择“记住我”并且服务器接受用户名/密码时才会发生这种情况。但是,当服务器回复时,我很难指出UISwitch的状态。 myUISwitch.on的价值令我惊讶(null)。
NSLog (@"(Successful login. Value of UISwitch rememberMe: %@)", rememberMe.on);
我必须将此信息存储在临时布尔值中吗?
答
如果它为空,它不是on
属性,而是rememberMe
变量,它没有设置。在Interface Builder或代码中正确连线。
此外,请确保始终从主线程访问UIKit,即使用performSelectorOnMainThread:enter code here
。
答
在您引用交换机时,视图是否仍未释放?运行时是否已经发布UISwitch
?你什么时候尝试读取其状态?当您阅读其状态时,控件是否仍在屏幕上?
UISwitch.on是BOOL(typedefed为signed char),不是一个id(或其他NSObject *),所以使用“%@”格式化它将不会达到您期望的效果。将其转换为int并使用“%d”或类似的东西。 – 2010-06-28 11:31:25