AJ分享,必须精品

问题

项目遇到了个bug,从服务器获取到的数据是这样的
{
status = 1,
data = [
{
uid = 161,
type = 2,
id = 79,
addtime = 1447642148,
addtime_txt = 2,

}]
}

看着挺抽象的,意思就是我们访问后返还的数据中有一个status, 一个data的放着一堆字典的数组,但是。。。但是就是但是,本来如果是下面数组里没有数据的情况下,status的值会是0,然而判断status == 0 或者是用字符串的isEqualToString方法都不行,反正就是不能行不能行的。

并且,当status = 0 的时候, 地下的data数组的值是”“这样的一个字符串。。。。。。。 是的,没有看错,他是个字符串,我通过isa 还有强制转换等得到他的类型是 __NSCFConstantString 哦尼玛卖糕的,这什么鬼。。。并且这里你要是用[data isEqualToString:@”“] 这样判断,当他是空的时候没事,但是如果有值了就崩了,血崩,反过来,如果用别的方法,比如看他存在否,当没有的时候 也就是他是”“这个鬼的时候也会蹦,很见鬼。

解决

经过亿万个草泥马略过,反正最后我是参考android客户端兄弟的做法,直接判断数组的长度,但是这里有时候他不是数组 是__NSCFConstantString这个鬼。。。(人家java的数组如果不是数组类型啥的都会用空啥的东西表示,oc这表咋竟然就知道给我崩。。。血崩)

NSArray *dataArr = Data[@"data"];

    NSLog(@"dataArr.class = %@", dataArr.class);
if ([dataArr isKindOfClass:[NSArray class]]) {
for (NSDictionary * dic in dataArr) {
attentionTerraceModel * model=[[attentionTerraceModel alloc] initWithDic:dic];
[_mary_data addObject:model];
}
}else {
UIAlertView *aleat=[[UIAlertView alloc] initWithTitle:@"提醒" message:@"暂无关注信息" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[aleat show];
}

我是这样解决的,就是把它换成NSArray 然后看他到底是不是数组类型的,反正如果以后碰到类似的比如字典啊 字符串啊也可以试试,至于内部原理什么的AJ猜测了一些,这里就不乱说了,有懂得希望能赐教下,不胜感激!

解决从服务器获取的数组是 __NSCFConstantString以及""没有空格字符串的问题的更多相关文章

  1. 使用Dhcpstarv解决DHCP服务器冲突问题

    场景: 内网环境需要开启多个DHCP服务器,分别给不同的设备进行PXE安装. 存在的问题: 多个DHCP的情况下,设备在启动时随机从一个DHCP服务器获取IP(哪个DHCP服务器先响应就从哪个获取)并 ...

  2. js 获取json数组里面数组的长度

    作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度’?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋 ...

  3. vue单页应用中,使用setInterval()定时向服务器获取数据,后来跳转页面后,发现还在不停的获取数据。

    使用VUE开发单页项目时遇到这样的问题,mounted中使用setInterval()定时向服务器获取数据,后来跳转页面后,发现还在不停的获取数据.我以为是因为我路由用的push导致的,改成repla ...

  4. 关于KMP算法中,获取next数组算法的理解

    参考:KMP入门级别算法详解--终于解决了(next数组详解) https://blog.csdn.net/lee18254290736/article/details/77278769 在这里讨论的 ...

  5. android 从服务器获取新闻数据并显示在客户端

    新闻客户端案例 第一次进入新闻客户端需要请求服务器获取新闻数据,做listview的展示, 为了第二次再次打开新闻客户端时能快速显示新闻,需要将数据缓存到数据库中,下次打开可以直接去数据库中获取新闻直 ...

  6. 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法

    /* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...

  7. nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP

    nginx做反向负载均衡,后端服务器获取真实客户端ip   首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                 ...

  8. windows phone 7 通过Post提交URL到服务器,从服务器获取数据(比如登陆时候使用)

    原文:windows phone 7 通过Post提交URL到服务器,从服务器获取数据(比如登陆时候使用) HttpWebRequest myRequest = (HttpWebRequest)Web ...

  9. java服务器获取客户端ip

    在写服务端代码时,有时需要对客户端ip做认证,比如限制只有某些ip能访问,或者1个ip1天只能访问几次.最近就碰到个需要限制ip的情况,从网上找了一些服务器获取客户端ip的方法,说的都不太完善,这里整 ...

随机推荐

  1. 项目总结&读书笔记

    Python项目 01-函数版ATM 读书笔记 01-Effective Python

  2. 【ES】Java High Level REST Client 使用示例(增加修改)

    ES提供了多种编程语言的链接方式,有Java API,PHP API,.NET API 官网可以详细了解 https://www.elastic.co/guide/en/elasticsearch/c ...

  3. SpringMVC框架——常用注解

    @RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...

  4. 2020kali浏览器汉化等配置

    0.修改搜索引擎 1. 2. 3.点击左侧搜索,输入language因为我已经修改为中文所以没有查询到结果 4点击搜索更多语言(未汉化未英文)找到chinese后添加 5.要将chinese上移到第一 ...

  5. 33. CentOS7 静态ip设置

    1.网络连接选择NAT模式: 2.关闭vmware的dhcp:选择编辑-->虚拟网络编辑器,选择VMnet8,去掉使用本地DHCP服务将ip地址分配给虚拟机(D). 3. 点击NAT设置(S)查 ...

  6. B - Yet Another Palindrome Problem的简单方法

    You are given an array aa consisting of nn integers. Your task is to determine if aa has some subseq ...

  7. 牛客练习赛60 A—F题解(缺E题)

    本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a ...

  8. docker image换包步骤

    Docker Commit 1.在IDEA中通过maven package得到watchman-1.5.0-SNAPSHOT.jar,将其scp到baisheng1本地: 2.查看dbaservice ...

  9. 实例演示:如何简化生产中的Pod安全策略?

    Pod安全策略对于强化K8S集群安全至关重要.本文将延续之前的文章继续深入介绍Pod安全策略. 首先,简单介绍了如何将Pod与Pod安全策略相关联,并使用RBAC来展示具体步骤.然后介绍如何在Ranc ...

  10. Building Applications with Force.com and VisualForce(Dev401)(十三):Implementing Business Processes:Automating Business Processes Part II

    ev401-014:Implementing Business Processes:Automating Business Processes Part II Module Agenda1.Multi ...