NSString是等同的奇怪的bug

Cpp*_*ase 0 json objective-c nsstring

我有一个Web服务器,我曾经在我的iOS应用程序中获取一些数据.数据包括一个字段,itemId比如说'48501'(没有引用).我阅读商品JSON数据到我itemObject在其中itemId被定义为NSString,而不是一个NSInteger.

一切都有效,直到这一点,但我有问题,我想itemObject.itemIdisEqual:功能与另一个NSString填充的功能进行比较48501.

换句话说,两个字符串完全相同,并48501在我打印时包含.没有空间和隐藏的东西.全部isEqual:isEqualToString:并且==在比较时报告错误.

当我转换NSStringsNSIntegers并比较它时它起作用但并非总是如此!有时TRUECRASH没有错误捕获,只是指向该行!我看到它们打印完全相同,但if语句没有通过.

我向那些经验丰富的人展示了代码,他觉得这可能是一个错误!有没有人接触过这个?

gra*_*ver 5

如果你itemId48501没有在任何报价JSON,那么它的反序列化NSNumber.可能这首先是问题所在.尝试记录您的类型itemId并正确使用-isEqualToString:for NSString-isEqualToNumber:for NSNumber.