美文网首页
iOS开发解析NSDictionary字典数据中Key值出现NS

iOS开发解析NSDictionary字典数据中Key值出现NS

作者: 博览己用1789 | 来源:发表于2019-02-14 16:33 被阅读0次

    废话少说,直接看图说问题

    出现原因:

    这个 iOS升级为64位系统后,指针也是64位,苹果为了速度和节省内存,整出来的taggedpointer如果整数值能用60位表示,就生成NSTaggedPointerNumber的类,如果ascii字符串 小于等于9位 就生成NSTaggedPointerString的类,这个对开发者使用和NSStringNSNumber没什么区别,还能提升性能,只不要直接访问类的 isa指针就好了。(引用作者说明:朱晓晓的技术博客 关注

    也就是说,当OC中的数据,所占用的内存字节数<9位的时候,系统回对数据做优化处理。

    解决方法:

    1:将NSString类型的修饰词改为copy形式

    2:将解析出来的数据直接深拷贝一份mutableCopy

    3:上述方法若不行,直接采取最笨的方式,将NSTaggedPointerString类型的字符串与另外一个字符串拼接,注意一定是与其他字符拼接起来,然后再拆分。

    如:假设 a是“NSTaggedPointerString类型”的字符串,a = @"110";

    NSString b =  [NSString stringWithFormat:@"%@%@",a,@","];

    //将其与一个@“逗号”拼接起来,然后拆分

    相关文章

      网友评论

          本文标题:iOS开发解析NSDictionary字典数据中Key值出现NS

          本文链接:https://www.haomeiwen.com/subject/ogneeqtx.html