我有一个Web服务器,我曾经在我的iOS应用程序中获取一些数据。数据包含一个字段itemId
让我们说'48501'
(没有引用)。我将项目JSON数据读入我的itemObject
,其中itemId
被定义为NSString
而不是NSInteger
。
在此之前一切正常但我在使用itemObject.itemId
功能isEqual:
与填充NSString
的其他48501
进行比较时遇到问题。
换句话说,当我打印它们时,两个字符串完全相同并包含48501
。没有空间和隐藏的东西。所有isEqual:
和isEqualToString:
以及==
在比较时均为false。
当我将NSStrings
转换为NSInteger
并对它们进行比较时,它有效,但并非总是如此!有时TRUE
有时CRASH没有错误捕获并只是指向该行!我看到它们的印刷完全相同,但if语句没有通过。
我向那些经验丰富的人展示了代码,他觉得这可能是一个错误!有没有人接触过这个?
答案 0 :(得分:5)
如果itemId
中的48501
JSON
没有任何引用,则NSNumber
将其反序列化为itemId
。可能这首先是问题所在。尝试记录-isEqualToString:
的类型并正确使用NSString
-isEqualToNumber:
和NSNumber
{{1}}。