精华内容
下载资源
问答
  • 判断NSString,NSData为空

    千次阅读 2016-10-19 19:19:07
    NSString和NSData都可以用 .length>0 来排除 Null 或者 “” (,这个length1)的情况。这样比较简便. eg。 NSString:   NSString * tip = NULL;  NSString * num = @"111";  //tip为空&&...

    NSString和NSData都可以用    .length>0   来排除为   Null   或者为  “”  (空,这个length为1)的情况。这样比较简便.

    eg。

    NSString: 

      NSString * tip = NULL;
        NSString * num = @"111";
        //tip为空&&
        if (!tip && num.length > 0) {
            NSLog(@"1");
        }else{
            NSLog(@"2");
        }
        
        if (tip.length > 0 &&num.length > 0) {
            NSLog(@"3");
        }else{
            NSLog(@"4");
        }
        NSString * tip1 = @"";
        //tip为空&&
        if (!tip1 && num.length > 0) {
            NSLog(@"5");
        }else{
            NSLog(@"6");
        }
        
        if (tip1.length > 0 &&num.length > 0) {
            NSLog(@"7");
        }else{
            NSLog(@"8");
        }
        if (num.length > 0) {
            if (tip1.length > 0) {
                NSLog(@"9");
            }else{
             NSLog(@"10");
            }
        }else{
         NSLog(@"11");
        }

    打印为:1、4、6、8、10

    NSData:

        NSData * xmlData =[@"testdata" dataUsingEncoding:NSUTF8StringEncoding];
        if (xmlData.bytes > 0) {
            NSLog(@"1");
        }else{
          NSLog(@"2");
        }
        
        NSData * xmlData1 =[@"" dataUsingEncoding:NSUTF8StringEncoding];
        if (xmlData1.bytes > 0) {
            NSLog(@"3");
        }else{
            NSLog(@"4");
        }
        
        if (xmlData.length > 0) {
            NSLog(@"5");
        }else{
            NSLog(@"6");
        }
        NSData * xmlData2 =NULL;
        if (xmlData2.length > 0) {
            NSLog(@"7");
        }else{
            NSLog(@"8");
        }

    打印为1,3,5,8;

    展开全文
  • iOS NSData 转 NSString为空

    千次阅读 2017-09-26 16:21:04
    NSData *result = [NSData dataWithBytes:outbuf length:data.length - outbytesleft]; iconv_close(cd); free(outbuf); return result; } 悦览播放器 一个好用的视频音频播放软件

    如果转换失败,可能是data里面包含了非UTF-8字符。

     NSMutableString *string = [[NSMutableString alloc]     initWithData:data encoding:NSUTF8StringEncoding];
        if (!string) {
            string = [[NSMutableString alloc]initWithData:[self cleanUTF8:data] encoding:NSUTF8StringEncoding];
        }
    

    清除非UTF-8字符。

    1. Linked Frameworks and Libraries 添加 libiconv.tbd。

    2. 添加头文件

    #import <iconv.h>

    3. 复制代码,粘贴到项目中

    /**
     剔除非UTF-8字符
    
     @param data 原来的数据data
     @return 处理后的输入data
     */
    - (NSData *)cleanUTF8:(NSData *)data {
        iconv_t cd = iconv_open("UTF-8", "UTF-8"); // 从UTF-8转UTF-8
        int one = 1;
        iconvctl(cd, ICONV_SET_DISCARD_ILSEQ, &one); // 剔除非UTF-8的字符
    
        size_t inbytesleft, outbytesleft;
        inbytesleft = outbytesleft = data.length;
        char *inbuf  = (char *)data.bytes;
        char *outbuf = malloc(sizeof(char) * data.length);
        char *outptr = outbuf;
        if (iconv(cd, &inbuf, &inbytesleft, &outptr, &outbytesleft)
            == (size_t)-1) {
            NSLog(@"this should not happen, seriously");
            return nil;
        }
        NSData *result = [NSData dataWithBytes:outbuf length:data.length - outbytesleft];
        iconv_close(cd);
        free(outbuf);
        return result;
    }

    悦览播放器 一个好用的视频音频播放软件

    这里写图片描述

    展开全文
  • NSData 转 NSString 为空的解决方法

    千次阅读 2016-06-02 21:48:09
    在iOS底层网络的开发中,会遇到NSData 转 NSString 为空的情况,原因很多,下面的解决方法是针对从服务器传过来的数据中含有非UTF-8字符(主要是UTF-8)的情况。 用libiconv清除非utf8字符 先给项目Link ...

           在iOS底层网络的开发中,会遇到NSData 转 NSString 为空的情况,原因很多,下面的解决方法是针对从服务器传过来的数据中含有非UTF-8字符(主要是UTF-8)的情况。


    用libiconv清除非utf8字符

    先给项目Link Binaries With Library 添加libiconv.dylib


    使用如下函数对NSData进行清理,再进行转换就OK了。

    <span style="font-size:18px;">- (NSData *)cleanUTF8:(NSData *)data {
      iconv_t cd = iconv_open("UTF-8", "UTF-8"); // 从utf8转utf8
      int one = 1;
      iconvctl(cd, ICONV_SET_DISCARD_ILSEQ, &one); // 丢弃不正确的字符
     
      size_t inbytesleft, outbytesleft;
      inbytesleft = outbytesleft = data.length;
      char *inbuf  = (char *)data.bytes;
      char *outbuf = malloc(sizeof(char) * data.length);
      char *outptr = outbuf;
      if (iconv(cd, &inbuf, &inbytesleft, &outptr, &outbytesleft)
          == (size_t)-1) {
        NSLog(@"this should not happen, seriously");
        return nil;
      }
      NSData *result = [NSData dataWithBytes:outbuf length:data.length - outbytesleft];
      iconv_close(cd);
      free(outbuf);
      return result;
    }</span>

    原文地址:

    http://m.blog.csdn.net/article/details?id=50905578;


    还有另外一种方法,在我的项目中还没有使用,先记录一下地址吧:


    http://blog.csdn.net/cuibo1123/article/details/40938225。


    展开全文
  • NSData转NSString时为空

    千次阅读 2016-03-14 17:29:06
    明明拿到了NSData,确定此DataNSString,可就是转换不成功。  NSStringEncoding myEncoding = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000);  NSString *rawString=

    原因可能有很多,但很大程度是是因为编码问题。

    明明拿到了NSData,确定此Data为NSString,可就是转换不成功。

     NSStringEncoding myEncoding = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000);

     NSString *rawString=[[NSString alloc]initWithData:data encoding:myEncoding];

    这样试试
    展开全文
  • iOS中,将NSData转NSString的一般方法[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];但是当data中包含00时,所获得的新字符就会nil,这时我们应该这样转 [NSString stringWithUTF8...
  • NSData

    2015-04-17 12:57:08
    :NSString 转换成 NSData [csharp] view plaincopy NSData *dataContent = [self.txtUrl.text dataUsingEncoding:NSUTF8StringEncoding];  2:根据路径获取 指定文件的数据 [csharp] ...
  • NSData *ticketData = [ticket subdataWithRange:NSMakeRange(2, ticket.length -2)];    char buf[33] = {0};  memcpy(buf, ticketData.bytes, 32);
  • 今天遇到一个问题,从服务器返回的数据为NSData类型,显示返回的数据有值,然后通过  NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"wj.txt" ofType:nil]]; ...
  • NSData dataWithContentsOfFile 返回值nil

    千次阅读 2017-06-21 15:52:22
    NSData *imageData = [NSData dataWithContentsOfFile:fullPath]; 我在这里遇到的是自己给自己挖了坑,贴出来给给大家看看. 先看一段代码 UIImage *image = [self.images objectForKey:appM.icon]; if (image) { ...
  • 我的NSdata 里 打印出来是optional 我使用 data 是NSdata let str:NSString = NSString(data:data,encoding:NSUTF8StringEncoding) ...报错 意外发现 NSdata里有空格 如果转 byte数组 请写一个例子学习
  • 读取的时候一般有两个方法NSData *imageData = [NSData dataWithContentsOfFile:@"路径"];UIImage* image = [[UIImage alloc] initWithData:imageData];还有一个NSString *aPath3=[NSString st...
  • 从接口可以获得数据NSData:,但是将数据转换NSString或者通过NSJSONSerialization直接转换NSDictionary的时候,返回的都是Null.
  • 有得到NSData内容,但转换到NSString时,为空 语句: NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; NSLog(theXML...
  • 我写了一些字符串加密的的代码,我把字符串转成nadata类型然后用AES256ParmEncryptWithKey进行加密处理,但当我对加密后的data转成nsstring时返回的却... NSData *strData = [testStr dataUsingEncoding:NSUTF8Str
  • - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {  [UMessage registerDeviceToken:deviceToken];    NSLog(@...
  • UIImage NSData 转换

    2013-03-29 14:27:28
    NSData 转 UIImage UIImage *image=[UIImage imageWithData:nsdata]; UIImage 转 NSData NSData *nsdata = UIImageJPEGRepresentation(image, 1.0);
  • 1.图片转为NSData NSData *imagedate = UIImagePNGRepresentation(scaledImage); 2.NSData转化图片 UIImage *iamge = [UIImage imagewithdata:imagedata];
  • 在请求完成后获取到的数据为NSData类型,按照我们通常的转换NSString的方法: NSString *str = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 但是发现转换后的...
  • NSData与NSDate

    2015-07-31 16:18:45
    2.客户端与服务器端,或者客户端与客户端交流的格式二进制,我们在传输给客户端数据,OC中用NSData类来存储,由实例化的对象,此对象中包含大量的字节,这些字节就是我们客户端想要的信息。NSDataNSData创建 NS
  • NSData/NSMutableData

    2015-07-31 18:28:14
    NSData/NSMutableData1.计算机中文件分为哪几种?文本文件和二进制文件,其中我们图片、歌曲、电影等就是二进制文件,像...即 NSData类。对NSData类来说,由其实例化的对象,此对象中包含大量的字节,这些字节就是我们
  • NSDate/NSData

    2015-11-08 14:29:13
    NSDate/NSData中常用的方法   NSString *str = @"1234abcd";  NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]...//将字符转换成dataNSUTF8StringEncoding编码格式   NSString *st
  • NSData 与 NSMutableData

    2015-12-17 17:46:58
    NSData / NSMutableData  /*  1.计算机中文件分为哪几种?  二进制文件和文本文件,其中我们的图片,歌曲,电影等就是二进制文件,想‘.txt’的文件就是文本文件,  2.客户端与服务器端,或者客户端...
  • 1.计算机文件分为哪几种二进制文件 和 文本文件,其中我们的图片、视频、音频等就是二进制文件,像‘.txt’的文件就是文本文件。 2.客户端与服务器端,或者客户端和客户端数据交流的...创建一个的dataNSData *data
  • NSData *p12Data =[NSData dataWithBytes:byte length:32]; NSLog(@"%@",p12Data); NSMutableDictionary * options = [[NSMutableDictionary alloc] init]; SecKeyRef privateKeyRef = NULL; //change to the ...
  • 通常情况下,使用下面的方法都能接收到服务器数据都能正常解析NSDictionary(responseObject服务器返回的二进制数据) NSDictionary * dicJson = [NSJSONSerialization JSONObjectWithData:responseObject ...
  • ios开发之NSData

    2019-10-07 08:21:16
    NSData用于保存字节数组。 初始化 - (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 初始化对象。 不进行复制字节数组操作,直接设置字节指针bytes...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,164
精华内容 3,265
关键字:

nsdata为空