我的代码:
stringFromRecievedData =
[[NSString alloc]initWithData:_data1 encoding:NSUTF8StringEncoding];
if (![stringFromRecievedData isEqualToString:lastStringFromRecievedData]) {
[lastStringFromRecievedData setString: stringFromRecievedData];
即使在第二轮中我也得到相同的“不相等”结果 - 即使每次都是相同的数据......
这是比较两者的正确方法吗?
感谢。
答案 0 :(得分:4)
如果lastStringFromRecievedData
是NSString
(或子类,例如NSMutableString
)的实例,那么这是比较两个字符串的正确方法。在这种情况下,其他可能导致你的字符串不相等。
但是,看起来lastStringFromRecievedData
是另一个对象,因为您在其上调用setString:
。如果是这种情况,则需要首先从该对象获取字符串。
stringFromRecievedData =
[[NSString alloc]initWithData:_data1 encoding:NSUTF8StringEncoding];
// Assuming 'string' is the function to get the string from 'setString:' below
NSString *otherString = [lastStringFromRecievedData string];
if (![stringFromRecievedData isEqualToString:otherString]) {
[lastStringFromRecievedData setString: stringFromRecievedData];
答案 1 :(得分:0)
如果你正在做的就是确保你的NSMutableString
与另一个NSString
相同,那么为什么不这样做:
lastStringFromRecievedData = [stringFromRecievedData mutableCopy];
或者:
[lastStringFromRecievedData setString:stringFromRecievedData];
最终结果将是相同的。