Ios 函数的返回值错误(可能是错误的字符串“type”?)
我得到了一个函数,它应该返回一个Ios 函数的返回值错误(可能是错误的字符串“type”?),ios,xcode,string,function,Ios,Xcode,String,Function,我得到了一个函数,它应该返回一个int值 - (int)function:(NSString *)input { if (input == @"test1") { return 0; } if (input == @"test2") { return 1; } if (input == @"test3") { return 2; } else { return 3; } }
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\uu NSCFString*0x6b9a0b0
,并返回任何29938idontknow
值
- (int)function:(NSString *)input
{
if (input == @"test1")
{
return 0;
}
if (input == @"test2")
{
return 1;
}
if (input == @"test3")
{
return 2;
}
else
{
return 3;
}
}
如果我调用[self function:@“test1”]
一切正常
detailItem
是TV
的类型,它是一个NSManagedObject
,其属性type
定义为string
。字符串
-类型是否有问题
谢谢大家! 您应该像这样比较NSString:
if ([input isEqualToString:@"test1"])
{
// Some code here
}
您应该像这样比较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"];
您当前正在比较内存地址,在这种情况下,内存地址总是不同的。您应该比较它们包含的字符串。检查self.detailItem.type是否为NSString:
if ([self.detailItem.type isKindOfClass:[NSString class]])
打电话之前
[self function:self.detailItem.type]
比较这样的字符串
[input isEqualToString:@"test1"];
您当前正在比较内存地址,在这种情况下,内存地址总是不同的。您应该比较它们所包含的字符串。请尝试[input isEqualToString:“xxx”]来比较字符串。请尝试[input isEqualToString:“xxx”]来比较字符串。