进击的UI------------网络判断
NSUserDefaults用于存储数据量小的数据,例如用户配置。并不是所有的东西都能往里放的,只支持:NSString,NSNumber, NSDate, NSArray, NSDictionary,详细方法可以查看类文件。
NSUserDefaultsstandardUserDefaults用来记录一下永久保留的数据非常方便,不需要读写文件,而是保留到一个 NSDictionary字典里,由系统保存到文件里,系统会保存到该应用下的/Library/Preferences /gongcheng.plist文件中。需要注意的是如果程序意外退出,NSUserDefaultsstandardUserDefaults数据不 会被系统写入到该文件,不过可以使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。
一、将数据存储到NSUserDefaults:
//UISwitch - (IBAction)switchChanged:(id)sender{NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];[userDefaults setBool:_theSwitch.on forKey:@"switchValue"]; }//UITextField - (IBAction)inputChanged:(id)sender{NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];[userDefaults setObject:_textField.text forKey:@"inputValue"]; }
二、读取NSUserDefaults中的数据:
//UISwitch NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; BOOL sw = [userDefaults boolForKey:@"switchValue"]; [_theSwitch setOn:sw];//UITextField NSString *str = [userDefaults stringForKey:@"inputValue"]; [_textField setText:str];
也就是说plist文件中看到的数据是你显示的设置进去的。
异步请求:
- -(BOOL)getOnlyKey1
- {
- NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
- __block bool isTrue = false;
- AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
- NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
- NSURL *url = [NSURL URLWithString:urlstr];
- NSDictionary *dic = @{@"imei":myUUIDStr,@"av":AppVersion};
- [manager POST:urlstr parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
- MyLog(@"%@", operation.responseString);
- NSRange range = [operation.responseString rangeOfString:@"\"msg\":\"0\""];
- if (range.location != NSNotFound) {
- isTrue = true;
- }
- if (!isTrue) {
- SHOWALERT(@"错误", @"您需要联系开发人员");
- }
- } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
- MyLog(@"返回失败结果:%@", error.localizedFailureReason);
- SHOWALERT(@"错误", @"请求开发人员服务器失败");
- isTrue = true;
- }];
- return isTrue;
- }
- -(BOOL)getOnlyKey2
- {
- NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
- BOOL isTrue = false;
- NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
- NSURL *url = [NSURL URLWithString:urlstr];
- NSMutableURLRequest *urlrequest = [[NSMutableURLRequest alloc]initWithURL:url];
- urlrequest.HTTPMethod = @"POST";
- NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, AppVersion];
- NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
- urlrequest.HTTPBody = body;
- AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlrequest];
- requestOperation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
- [requestOperation start];
- [requestOperation waitUntilFinished];
- MyLog(@"%@",requestOperation.responseString);
- NSRange range = [requestOperation.responseString rangeOfString:@"\"msg\":\"0\""];
- if (range.location != NSNotFound) {
- isTrue = true;
- }
- if (!isTrue) {
- SHOWALERT(@"错误", @"您需要联系开发人员");
- }
- return isTrue;
- }
- -(BOOL)getOnlyKey
- {
- NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
- //应用版本号
- NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
- NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];
- NSString *urlString = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
- NSURL *url = [NSURL URLWithString:urlString];
- NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
- [request setHTTPMethod:@"POST"];
- NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, versionNum];
- //将nstring转换成nsdata
- NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
- //MyLog(@"body data %@", body);
- [request setHTTPBody:body];
- NSURLResponse *response = nil;
- NSError *error = nil;
- //第二,三个参数是指针的指针,所有要用取址符,这个方法是同步方法。同步操作没有完成,后面的代码不会执行。
- NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
- // NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
- // MyLog(@"返回结果是:%@", str);
- if (error == nil) { //接受到数据,表示工作正常
- NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
- MyLog(@"%@",str);
- NSRange range = [str rangeOfString:@"\"msg\":\"0\""];
- if (range.location != NSNotFound) {
- return true;
- }else{
- return false;
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"出错鸟"
- message:@"您需要联系项目开发人员"
- delegate:nil
- cancelButtonTitle:@"确定"
- otherButtonTitles:nil];
- [alert show];
- }
- }
- if(error != nil || response == nil)
- {
- return false;
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误"
- message:@"登陆失败,网络不稳定"
- delegate:nil
- cancelButtonTitle:@"确定"
- otherButtonTitles:nil];
- [alert show];
- }
- return false;
- }
转载于:https://www.cnblogs.com/sharkHZ/p/4984060.html
进击的UI------------网络判断相关推荐
- iOS 5G网络判断
iOS中如何判断5G网络呢?Xcode12.1中CTRadioAccessTechnologyNRNSA和CTRadioAccessTechnologyNR NR是New Radio的缩写,新无线(5 ...
- python搭建 ADLINE 网络判断男女
python搭建 ADLINE 网络判断男女 小记 f ( x ) = σ ( w x + b ) f(x)=\sigma(wx+b) f(x)=σ(wx+b) 该模型叫做ADLINE(Adative ...
- 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负
使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p 数据集文件格式为CSV.数据集包含了大约5万场英雄联盟钻石排位赛前15分钟的数据集合,总 ...
- Android-Service(系统服务实例:定位,网络判断,电话服务 ,通知栏通知等)
1.回顾 上篇 学习了 Android 系统服务的基本知识,和两个实例 2.重点 (1)实例:定位实现 (2)实例:网络判断 (3)实例:wifi 判断 (4)实例:获得电话号码 (5)实例:通过服务 ...
- 【12月原创】RT-thread - 柿饼UI —— 网络流媒体播放器
Persimmon UI作业(四)-- 网络流媒体播放器 前言:这次的作业花费了一周的时间,因为学校接近末考同时面对大连疫情的严峻,使整个开发流程变得断断续续,不过还好总算是完成了这次网络流媒体播放器 ...
- 安卓 TV 网络判断(含PPPOE) 封装
初入TV开发时,在自己的项目中遇到了很多难题,今天这篇博客主要阐述TV下的网络监控和判断问题. 实现思路 我们不用每次都去获得网络状态,google 早就帮我们封装好了网络检测,在网络状态变化的情况下 ...
- android中怎么网络判断,Android中判断网络是否连接实例详解
Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDetector { priv ...
- network: Android 网络判断(wifi、3G与其他)
public class NetworkProber { /** * 网络是否可用 * * @param activity * @return */ public static boole ...
- android 判断对象,Android网络判断知识小结
Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Cont ...
- Linu网络判断指令ping、curl、telnet的区别与应用场景
curl指令 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. ...
最新文章
- Android 应用程序集成Google 登录及二次封装
- 自动写作、RNN基本原理以及LSTM的基本原理
- Web Service 概念
- Activity与Service通信
- 5分钟学会如何创建spring boot项目
- NBear.Mapping使用教程(5):实体对象与NameValueCollection,Dicitonary以及NBear.Mapping性能
- ps aux 查看进程信息
- java内存模型—先行发生原则
- Hibernate-逆向工程
- 嵌入式相关开源项目、库、资料
- 小米手机-解BL锁+开ROOT权限
- 重庆—java互联网架构软件工程师学习记录—Day11(API 1)
- ZB级的大数据探索与应用实践【附PPT】
- 马蹄疾 | 详解 JavaScript 异步机制及发展历程(万字长文)
- 基于PyQt的分组工具
- .net微信扫码支付
- 【Git】1090- 我在工作中是如何使用Git的
- 高德地图 根据名称搜索坐标,坐标点呈现列表展示
- Mairadb数据库基本操作之数据管理
- 王了个王(羊了个羊)H5游戏源码下载
热门文章
- (原创)无废话C#设计模式之十一:Composite
- my rank in math in the domain of pure mathematics
- 这个高度站立办公十分的棒
- 【转】80后安稳上班,90后看心情上班,95后……太形象了!
- Vue 安装 less
- 即将推出.NET Framework 4.7.2中的一些亮点
- 与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
- 解决使用CoreData时报duplicate symbol错误问题
- api接口rsa加密
- poj 1979 Red and Black(BFS)