最近一直在纳闷如何去判断AnyObject类型为空,像以前oc中有nil进行判断就可以了,但是它却不能使用此方法进行判断;
而我在很多数据请求的时候又需要使用AnyObject类型作为返回值,研究了很久都没找到有效的判断方式,今天仔细研究了下它的数据结构,终于找到了方法;
首先来分析下它的数据结构,下面分有数据和没有数据的时候进行区分:
1、有数据的时候:
▿ Optional<AnyObject>
▿ Some : 2 elements
▿ [0] : 15 elements
▿ [0] : 2 elements
- .0 : systime
▿ [1] : 2 elements
- .0 : contxt
▿ [1] : 15 elements
▿ [0] : 2 elements
- .0 : systime
▿ [1] : 2 elements
- .0 : contxt { ... }
2、没有数据的时候:
Optional<AnyObject>
- Some : <null>
从上面的两种情况就可以看出来在有数据的时候它是采用了计数的方式进行存储的,有点像数组;那么此时应该就可以类似于数组判断元素个数的方式调用count函数进行判断是否存在元素;
而从没有值的情况就会发现它给出的是<null>,这让我想到了NSNull类,但是我使用这种方式判断的时候也不行,编译都没法通过;
所以综合起来最终的解决方式就是将其当作一个容器来进行处理,容器中存储元素,那么就可以获取容器中元素的个数,若个数为0那么说明容器中不存在任何元素;
最终判断AnyObject为空操作就是依靠count函数即可 AnyObject.count<=0 即表示AnyObject为空