Xcode 6.1:名为' count'的多种方法发现结果不匹配,参数类型或属性

时间:2015-01-02 09:00:24

标签: ios methods compiler-errors xcode6.1

我正在找到名为'count'的多个方法,在构建应用时发现结果不匹配,参数类型或属性错误。该应用程序在32位工作正常。我根据Apple guideline将其更改为64位。我已经提到了Link,但没有得到任何帮助。

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

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

}

Error

3 个答案:

答案 0 :(得分:22)

if([response count]>0)

response此处为id,错误表明有多种名为count的方法会返回不同的类型 - intNSInteger我认为不同在64位但在32位相同。

要修复,请执行演员:

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

答案 1 :(得分:10)

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

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

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

此解决方案在我的案例中不可行,因为有1000个地方包含[response count]

答案 2 :(得分:0)

仔细检查您的回复,是否有任何名称为计数

的媒体资源