在我的应用程序中,有一种机制要求在某个时刻两个NSStrings将是相同的做某事; 出于某种原因,当我比较两者时,即使它们是相同的,它仍然无法识别.代码是这样的:
NSString * aString = [self someMethodThatGetsAString];
NSString * bString;
BOOL areStringsTheSame = NO;
while (areStringsTheSame != YES) {
bString = [self someMethodThatTakesNSStringsFromAnArrey];
if (bString == aString) {
areStringsTheSame = YES;
{ }
Run Code Online (Sandbox Code Playgroud)
我甚至插入了一个NSLog(),并确保在某一点它们是相同的(据我所知这是==代表...),但它仍然没有进入if改变BOOL价值.
还有另一种方法可以进行这种比较吗?我错过了什么吗?
我试过了:
- (NSString*) generateString
{
NSString* stringToReturn = @"thisString";
return stringToReturn;
}
- (void) otherMethod
{
NSString *returnedString = [self generateString];
if (returnedString == @"thisString")
{ // Do this }
else if (returnedString == @"thatString")
{ // Do that }
}
Run Code Online (Sandbox Code Playgroud)
哪个从不匹配.
我试过了
if ([returnedString compare:@"thisString"] == 1)
Run Code Online (Sandbox Code Playgroud)
但是compare方法总是为我返回1,即使与不同的字符串进行比较也是如此.
这样做的正确方法是什么,我应该得到什么结果?