Ios Xcode 6.1:名为';计数';发现结果、参数类型或属性不匹配

Ios Xcode 6.1:名为';计数';发现结果、参数类型或属性不匹配,ios,methods,compiler-errors,xcode6.1,Ios,Methods,Compiler Errors,Xcode6.1,我在构建应用程序时发现多个名为“count”的方法,结果、参数类型或属性不匹配,出现错误。该应用程序在32位中运行良好。我已根据将其更改为64位。我已经提到了这一点,但没有得到任何帮助 我已经在模拟器上的多个设备上测试了应用程序它在32位时工作正常,但在64位时提示错误。 为什么会这样 -(void)serviceSuccessFulForPatientSelect:(id)response { [self hideOverlay]; if([response isKindOf

我在构建应用程序时发现多个名为“count”的方法,结果、参数类型或属性不匹配,出现错误。该应用程序在32位中运行良好。我已根据将其更改为64位。我已经提到了这一点,但没有得到任何帮助

我已经在模拟器上的多个设备上测试了应用程序它在32位时工作正常,但在64位时提示错误。 为什么会这样

 -(void)serviceSuccessFulForPatientSelect:(id)response
{
    [self hideOverlay];
    if([response isKindOfClass:[NSArray class]])
    {
        if([response count]>0)
        {
            if(1)
            {
               ...
            }
        }
    }
    [refillDetailTable reloadData];

}

response
是一个
id
这里的错误提示有多个名为
count
的方法,它们返回不同的类型-
int
NSInteger
我认为64位不同,但32位相同

要修复,请执行强制转换:

if([(NSArray*)response count]>0)

解决方案1: 我在视图控制器中声明了计数为属性。我把它重命名为CountValue,问题就解决了

解决方案2: 您可以将类型转换为适当的数据类型

if([(NSArray *) response count]>0) {
  ...
}

在我的情况下,此解决方案不可行,因为有1000个位置包含
[response count]

请仔细检查您的响应,是否存在名为count

的属性请在调用“count”之前尝试将响应强制转换到NSArray.铸造是不可行的,因为大约有1000个位置需要更换…还有其他数千个位置吗?您的替代方法是找到另一个count方法(可能在代码中)并更改返回类型。但是如果你有数千个你正在计算的id对象,那听起来就错了。如果有问题的话?
if([(NSArray *) response count]>0) {
  ...
}