转自:http://blog.csdn.net/huang2009303513/article/details/41309043
NSUserDefaults standardUserDefaults的使用
hone中在本地存储数据简单的说有三种方式:数据库、NSUserDefaults和文件。

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];

registerDefaults:方法是注册偏好设置的子集,它是不写入到plist文件中的,但在ND中取确实能取到。
也就是说plist文件中看到的数据是你显示的设置进去的。
比如调用setxxx方法
AFN同步异步请求

异步请求:

[objc] view plaincopy
  1. -(BOOL)getOnlyKey1
  2. {
  3. NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
  4. __block bool isTrue = false;
  5. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  6. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
  7. NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
  8. NSURL *url = [NSURL URLWithString:urlstr];
  9. NSDictionary *dic = @{@"imei":myUUIDStr,@"av":AppVersion};
  10. [manager POST:urlstr parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
  11. MyLog(@"%@", operation.responseString);
  12. NSRange range = [operation.responseString rangeOfString:@"\"msg\":\"0\""];
  13. if (range.location != NSNotFound) {
  14. isTrue = true;
  15. }
  16. if (!isTrue) {
  17. SHOWALERT(@"错误", @"您需要联系开发人员");
  18. }
  19. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  20. MyLog(@"返回失败结果:%@", error.localizedFailureReason);
  21. SHOWALERT(@"错误", @"请求开发人员服务器失败");
  22. isTrue = true;
  23. }];
  24. return  isTrue;
  25. }
同步请求:
[objc] view plaincopy
  1. -(BOOL)getOnlyKey2
  2. {
  3. NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
  4. BOOL isTrue = false;
  5. NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
  6. NSURL *url = [NSURL URLWithString:urlstr];
  7. NSMutableURLRequest *urlrequest = [[NSMutableURLRequest alloc]initWithURL:url];
  8. urlrequest.HTTPMethod = @"POST";
  9. NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, AppVersion];
  10. NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
  11. urlrequest.HTTPBody = body;
  12. AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlrequest];
  13. requestOperation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
  14. [requestOperation start];
  15. [requestOperation waitUntilFinished];
  16. MyLog(@"%@",requestOperation.responseString);
  17. NSRange range = [requestOperation.responseString rangeOfString:@"\"msg\":\"0\""];
  18. if (range.location != NSNotFound) {
  19. isTrue = true;
  20. }
  21. if (!isTrue) {
  22. SHOWALERT(@"错误", @"您需要联系开发人员");
  23. }
  24. return  isTrue;
  25. }
原生态的同步请求:

[objc] view plaincopy
  1. -(BOOL)getOnlyKey
  2. {
  3. NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
  4. //应用版本号
  5. NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
  6. NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];
  7. NSString *urlString = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];
  8. NSURL *url = [NSURL URLWithString:urlString];
  9. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  10. [request setHTTPMethod:@"POST"];
  11. NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, versionNum];
  12. //将nstring转换成nsdata
  13. NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
  14. //MyLog(@"body data %@", body);
  15. [request setHTTPBody:body];
  16. NSURLResponse *response = nil;
  17. NSError *error = nil;
  18. //第二,三个参数是指针的指针,所有要用取址符,这个方法是同步方法。同步操作没有完成,后面的代码不会执行。
  19. NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
  20. //    NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
  21. //    MyLog(@"返回结果是:%@", str);
  22. if (error == nil) {  //接受到数据,表示工作正常
  23. NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
  24. MyLog(@"%@",str);
  25. NSRange range = [str rangeOfString:@"\"msg\":\"0\""];
  26. if (range.location != NSNotFound) {
  27. return true;
  28. }else{
  29. return false;
  30. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"出错鸟"
  31. message:@"您需要联系项目开发人员"
  32. delegate:nil
  33. cancelButtonTitle:@"确定"
  34. otherButtonTitles:nil];
  35. [alert show];
  36. }
  37. }
  38. if(error != nil || response == nil)
  39. {
  40. return false;
  41. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误"
  42. message:@"登陆失败,网络不稳定"
  43. delegate:nil
  44. cancelButtonTitle:@"确定"
  45. otherButtonTitles:nil];
  46. [alert show];
  47. }
  48. return false;
  49. }

转载于:https://www.cnblogs.com/sharkHZ/p/4984060.html

进击的UI------------网络判断相关推荐

  1. iOS 5G网络判断

    iOS中如何判断5G网络呢?Xcode12.1中CTRadioAccessTechnologyNRNSA和CTRadioAccessTechnologyNR NR是New Radio的缩写,新无线(5 ...

  2. python搭建 ADLINE 网络判断男女

    python搭建 ADLINE 网络判断男女 小记 f ( x ) = σ ( w x + b ) f(x)=\sigma(wx+b) f(x)=σ(wx+b) 该模型叫做ADLINE(Adative ...

  3. 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负

    使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p 数据集文件格式为CSV.数据集包含了大约5万场英雄联盟钻石排位赛前15分钟的数据集合,总 ...

  4. Android-Service(系统服务实例:定位,网络判断,电话服务 ,通知栏通知等)

    1.回顾 上篇 学习了 Android 系统服务的基本知识,和两个实例 2.重点 (1)实例:定位实现 (2)实例:网络判断 (3)实例:wifi 判断 (4)实例:获得电话号码 (5)实例:通过服务 ...

  5. 【12月原创】RT-thread - 柿饼UI —— 网络流媒体播放器

    Persimmon UI作业(四)-- 网络流媒体播放器 前言:这次的作业花费了一周的时间,因为学校接近末考同时面对大连疫情的严峻,使整个开发流程变得断断续续,不过还好总算是完成了这次网络流媒体播放器 ...

  6. 安卓 TV 网络判断(含PPPOE) 封装

    初入TV开发时,在自己的项目中遇到了很多难题,今天这篇博客主要阐述TV下的网络监控和判断问题. 实现思路 我们不用每次都去获得网络状态,google 早就帮我们封装好了网络检测,在网络状态变化的情况下 ...

  7. android中怎么网络判断,Android中判断网络是否连接实例详解

    Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDetector { priv ...

  8. network: Android 网络判断(wifi、3G与其他)

    public class NetworkProber { /**  * 网络是否可用  *  * @param activity  * @return  */  public static boole ...

  9. android 判断对象,Android网络判断知识小结

    Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Cont ...

  10. Linu网络判断指令ping、curl、telnet的区别与应用场景

    curl指令 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. ...

最新文章

  1. Android 应用程序集成Google 登录及二次封装
  2. 自动写作、RNN基本原理以及LSTM的基本原理
  3. Web Service 概念
  4. Activity与Service通信
  5. 5分钟学会如何创建spring boot项目
  6. NBear.Mapping使用教程(5):实体对象与NameValueCollection,Dicitonary以及NBear.Mapping性能
  7. ps aux 查看进程信息
  8. java内存模型—先行发生原则
  9. Hibernate-逆向工程
  10. 嵌入式相关开源项目、库、资料
  11. 小米手机-解BL锁+开ROOT权限
  12. 重庆—java互联网架构软件工程师学习记录—Day11(API 1)
  13. ZB级的大数据探索与应用实践【附PPT】
  14. 马蹄疾 | 详解 JavaScript 异步机制及发展历程(万字长文)
  15. 基于PyQt的分组工具
  16. .net微信扫码支付
  17. 【Git】1090- 我在工作中是如何使用Git的
  18. 高德地图 根据名称搜索坐标,坐标点呈现列表展示
  19. Mairadb数据库基本操作之数据管理
  20. 王了个王(羊了个羊)H5游戏源码下载

热门文章

  1. (原创)无废话C#设计模式之十一:Composite
  2. my rank in math in the domain of pure mathematics
  3. 这个高度站立办公十分的棒
  4. 【转】80后安稳上班,90后看心情上班,95后……太形象了!
  5. Vue 安装 less
  6. 即将推出.NET Framework 4.7.2中的一些亮点
  7. 与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
  8. 解决使用CoreData时报duplicate symbol错误问题
  9. api接口rsa加密
  10. poj 1979 Red and Black(BFS)