繁体   English   中英

函数的返回值错误(字符串“ type”可能错误?)

[英]Wrong return value of function (Probably wrong string “type”?)

我有一个应该返回int值的函数。

- (int)function:(NSString *)input
{
 if (input == @"test1")
    {
        return 0;  
    }
 if (input == @"test2")
    {
        return 1;  
    }
 if (input == @"test3")
    {
        return 2;  
    }
 else
{
    return 3;
}
}

我在这里调用该函数:

[self function:self.detailItem.type]

调试器显示input __NSCFString * 0x6b9a0b0并返回任何29938idontknow值。

如果我调用[self function:@"test1"]一切正常。

detailItemTV类型,它是NSManagedObject ,其属性type定义为string string -types应该有问题吗?

谢谢!

您应该像这样比较NSString:

if ([input isEqualToString:@"test1"])
{
    // Some code here
}

检查self.detailItem.type是否为NSString:

if ([self.detailItem.type isKindOfClass:[NSString class]])

打电话之前

[self function:self.detailItem.type]

并比较这样的字符串

[input isEqualToString:@"test1"];

您当前正在比较内存地址,在这种情况下,内存地址将始终是不同的,您应该比较它们包含的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM