【发布时间】:2012-01-25 18:47:43
【问题描述】:
我有一个具有可访问方法的类,该方法在调用时传回NSString。
[MyClass getMyString]
该类中的字符串变量实际上是在如下表的didSelectRowAtIndexPath: 部分中分配的:
myString = cell.textLabel.text;
当我通过调用该方法检索字符串时,我将它分配给调用它的类中的另一个字符串,并将它与我定义的字符串进行比较
NSString *mySecondString;
mySecondString = @"my value";
if(mySecondString == myString){
i = 9;
}
我已经单步执行了代码,每次它评估 if 语句时,它都会跳过 i=9 并转到下一个 else if 语句。为什么会这样?为什么他们不评估为相同的值?如果在调试期间将光标悬停在每个值上,它们将显示它们具有相同的值,但由于某种原因,代码没有按照我的预期执行并将 9 分配给 i。
有什么想法吗?
【问题讨论】:
-
我很惊讶在这个网站上的搜索没有带来任何结果。这个问题过去已经被问过很多次了。
-
也许在我问之前我在搜索时没有以正确的方式问它...... - 看到很多处理 CFString 并将其分配给 NSString 的问题,但没有很快看到凯文巴拉德下面回答。谢谢!
标签: objective-c cocoa cocoa-touch nsstring string-comparison