[英]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"]
一切正常。
detailItem
是TV
类型,它是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.