我正在尝试从文本字段中保存字符串。
我有一个
IBOutlet UITextField *login;
IBOutlet UITextField *pass;
...
@synthesize login,pass;
...
当我点击按钮时,此方法正在运行:
- (IBAction) saveAuthentication: (id)sender {
//show an error message
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login et Mot de passe" message:@"Votre login et votre mot de passe sont enregistrés."delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];[alert release];
//extract the login from the field and put in in Log
NSString *loginsaved = login.text;
NSString *passsaved = pass.text;
NSLog(@"%d", loginsaved );
//save the login and pass in the phone
NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];
[pref setObject:login.text forKey:@"login"];
[pref setObject:pass.text forKey:@"pass"];
}
当我执行它时,控制台显示0而不是我输入的登录...
一百个以上的帮助
答案 0 :(得分:2)
您是否将IBOutlets链接到Interface Builder中的实际元素?
听起来像登录可能是nil,所以login.text也会返回nil。
答案 1 :(得分:1)
请改为尝试:
NSLog(@"%@", loginsaved );
答案 2 :(得分:1)
是的,因为您在NSLog中使用%d而不是使用%@:
NSLog(@"%@", loginsaved );
答案 3 :(得分:1)
对于NSString
变量您应该使用以下代码...
NSString *loginsaved = login.text;
NSString *passsaved = pass.text;
NSLog(@"%@", loginsaved );
这里是客观的
整数 %d
,字符串 %@
, Float %f
。
继续微笑....