UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"验证码发送失败" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancel=[UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
提示框基本格式
效果:
2.与服务器交互(重点)
首先要了解http服务HTTP协议
实现PC与设备之间的数据传输的最佳方式就是在程序中嵌套一个http 服务器
GET和POST的选择
选择GET和POST的建议
(1)如果要传递大量数据,比如文件上传,只能用POST请求
(2)GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
(3)如果仅仅是索取数据(数据查询),建议使用GET
(4)如果是增加、修改、删除数据,建议使用POST
引用块内容iOS中发送HTTP请求的方案
在iOS中,常见的发送HTTP请求(GET和POST)的解决方案有
(1)苹果原生(自带)
NSURLConnection:用法简单,最古老最经典最直接的一种方案
NSURLSession:iOS 7新出的技术,功能比NSURLConnection更加强大
CFNetwork:NSURL*的底层,纯C语言
(2)第三方框架
ASIHttpRequest:外号“HTTP终结者”,功能极其强大,可惜早已停止更新
AFNetworking:简单易用,提供了基本够用的常用功能
利用AFN3.0-POST方法进行服务器注册(后台接口已经写好):
//1.请求管理者
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
AFSecurityPolicy *securitypolicy = [AFSecurityPolicy defaultPolicy];
securitypolicy.allowInvalidCertificates = YES;
mgr.securityPolicy = securitypolicy;
//2.后台登录接口
NSURL *URL = [NSURL URLWithString:[ServerAPITools RegisterUserphone:phonenumberTextField.text Password:passwordTextField1.text Username:nameTextField1.text]];
//3.发送一个POST请求
[mgr POST:[URL absoluteString] parameters:nil progress:^(NSProgress *uploadProgress) {
} success:^(NSURLSessionDataTask *operation, id responseObject){
NSLog(@"请求成功%@", responseObject);
}failure:^(NSURLSessionDataTask *operation, NSError *error){
NSLog(@"请求失败-%@",error);
}];
cocoapod updata之后的问题
解决方法:project ->info ->configurations,debug和release改为pod
4.运行出现
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
因为在iOS9 beta1中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据。
解决办法:
在info.plist中添加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
一直看到前辈的代码的委托方法中有resignfirstresponder,很好奇所以查了一下资料,其实它的作用是:
取消第一响应者状态。如果对textfield使用的话,textfield的第一响应者状态就会取消
比如:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
效果:
当用户按下return键或者按回车键,keyboard消失
再比如:
- (IBAction)viewAction:(id)sender {
[zhanghao resignFirstResponder];
[mima resignFirstResponder];
}
效果:
触摸背景关闭textfiled的键盘