您的位置:首页 > 理论基础 > 计算机网络

网络:登录界面搭建与数据保存

2016-04-13 08:19 671 查看
#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *usernameField;
@property (weak, nonatomic) IBOutlet UITextField *passwordField;
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

// 读取保存的用户信息
[self loadUserInfo];

//    self.passwordField.keyboardAppearance=NO;

//    self.passwordField.keyboardAppearance=UIKeyboardAppearanceLight;
}
- (IBAction)login:(id)sender {

// 在真实开发中,项目名或者文件夹尽量不要使用中文
NSString *URLString = [NSString stringWithFormat:@"http://localhost/login.php"];

// NSURL 在工作中,不止是php为后缀,还有可能是其他的,jsp,asp,.do,.action,不管什么后缀,在我们眼里都是一样的
NSURL *url = [NSURL URLWithString:URLString];
// NSURLRequest
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

// 请求默认是GET,如果要使用POST必须是可变的请求
// 设置POST请求
[request setHTTPMethod:@"POST"];

// 拼接POST参数
NSString *params = [NSString stringWithFormat:@"username=%@&password=%@",self.usernameField.text,self.passwordField.text];
// 设置POST参数,不需要百分号转码
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];

// NSURLConnection
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
//        NSLog(@"%@",response);
id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSLog(@"%@",result);
// 如果登录成功,保存用户信息
// 判断返回结果是否有userId,如果有登录成功,如果没有,登录失败
if (result[@"userId"]) {
[self saveUserInfo];
}
}];

}

#define CZUserName @"CZUserName"
#define CZPassword @"CZPassword"

// 保存用户信息
- (void)saveUserInfo {

// 使用偏好设置保存用户信息
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//    NSLog(@"%@",NSHomeDirectory());
// 保存用户名
[defaults setObject:self.usernameField.text forKey:CZUserName];
// 保存密码
[defaults setObject:self.passwordField.text forKey:CZPassword];

// 同步 iOS8 以后不需要调用同步就可以,但是如果需要适配iOS7还是需要调用
//    [defaults synchronize];

}

// 读取用户信息
- (void)loadUserInfo {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

self.usernameField.text = [defaults objectForKey:CZUserName];
self.passwordField.text = [defaults objectForKey:CZPassword];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: