• 进击的UI------------网络判断


    转自:http://blog.csdn.net/huang2009303513/article/details/41309043
     
    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方法
     

    异步请求:

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. -(BOOL)getOnlyKey1  
    2. {  
    3.     NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  
    4.       
    5.     __block bool isTrue = false;  
    6.       
    7.     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
    8.     manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];  
    9.     NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];  
    10.     NSURL *url = [NSURL URLWithString:urlstr];  
    11.     NSDictionary *dic = @{@"imei":myUUIDStr,@"av":AppVersion};  
    12.     [manager POST:urlstr parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {  
    13.         MyLog(@"%@", operation.responseString);  
    14.         NSRange range = [operation.responseString rangeOfString:@""msg":"0""];  
    15.         if (range.location != NSNotFound) {  
    16.             isTrue = true;  
    17.         }  
    18.         if (!isTrue) {  
    19.             SHOWALERT(@"错误", @"您需要联系开发人员");  
    20.         }  
    21.           
    22.     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
    23.         MyLog(@"返回失败结果:%@", error.localizedFailureReason);  
    24.         SHOWALERT(@"错误", @"请求开发人员服务器失败");  
    25.         isTrue = true;  
    26.     }];  
    27.     return  isTrue;  
    28. }  
    同步请求:
    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
     
    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在CODE上查看代码片派生到我的代码片
     
      1. -(BOOL)getOnlyKey  
      2. {  
      3.     NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  
      4.       
      5.     //应用版本号  
      6.     NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];  
      7.     NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];  
      8.       
      9.       
      10.     NSString *urlString = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];  
      11.     NSURL *url = [NSURL URLWithString:urlString];  
      12.       
      13.     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
      14.       
      15.     [request setHTTPMethod:@"POST"];  
      16.     NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, versionNum];  
      17.     //将nstring转换成nsdata  
      18.     NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];  
      19.     //MyLog(@"body data %@", body);  
      20.     [request setHTTPBody:body];  
      21.     NSURLResponse *response = nil;  
      22.     NSError *error = nil;  
      23.     //第二,三个参数是指针的指针,所有要用取址符,这个方法是同步方法。同步操作没有完成,后面的代码不会执行。  
      24.     NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];  
      25.       
      26.     //    NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
      27.     //    MyLog(@"返回结果是:%@", str);  
      28.       
      29.     if (error == nil) {  //接受到数据,表示工作正常  
      30.         NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
      31.         MyLog(@"%@",str);  
      32.         NSRange range = [str rangeOfString:@""msg":"0""];  
      33.         if (range.location != NSNotFound) {  
      34.             return true;  
      35.         }else{  
      36.             return false;  
      37.             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"出错鸟"  
      38.                                                             message:@"您需要联系项目开发人员"  
      39.                                                            delegate:nil  
      40.                                                   cancelButtonTitle:@"确定"  
      41.                                                   otherButtonTitles:nil];  
      42.             [alert show];  
      43.         }  
      44.     }  
      45.       
      46.     if(error != nil || response == nil)  
      47.     {  
      48.         return false;  
      49.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误"  
      50.                                                         message:@"登陆失败,网络不稳定"  
      51.                                                        delegate:nil  
      52.                                               cancelButtonTitle:@"确定"  
      53.                                               otherButtonTitles:nil];  
      54.         [alert show];  
      55.           
      56.           
      57.     }  
      58.       
      59.     return false;  
      60. }  
  • 相关阅读:
    linux学习17 运维核心技能-Linux系统下用户权限管理
    linux学习16 Linux用户和组管理命令演练和实战应用
    linux学习15 Linux系统用户和组全面讲解
    linux学习14 Linux运维高级系统应用-glob通配及IO重定向
    linux学习13 Linux运维常用文件管理命令及系统变量基础
    linux学习12 bash的常见特性及文本查看命令实战
    linux学习11 Linux基础命令及命令历史
    linux学习10 Linux目录结构和根文件系统全面讲解
    【Hadoop离线基础总结】Hive调优手段
    【Hadoop离线基础总结】Hive的基本操作
  • 原文地址:https://www.cnblogs.com/sharkHZ/p/4984060.html
Copyright © 2020-2023  润新知