XCode 5中的错误接收器类型'void'错误

时间:2013-12-04 07:18:08

标签: ios iphone objective-c xcode5

我在Xcode 5中遇到“Bad receiver type'void'”错误。我使用以下代码,

方法定义:

- (BOOL)allItemsSelectedFrom:(NSSet *)original selectedItems:(NSMutableArray *)selecteds{

    NSLog(@"original = %@", original);

    for (id object in original)
        if([[object display] intValue]==1)
        if (![selecteds containsObject:[object name]])
            return NO;
    int k=0;
    for (id object in original)
    {
        if([[object display] intValue]==1)
            k++;
    }
    //if(k==[selecteds count] && ([selecteds count]!=0))
    if(k==[selecteds count])
        return YES;
    else
        return NO;
}

方法调用:

        BOOL allItemsSelected = [self allItemsSelectedFrom:profile.chemotherapies selectedItems:chemotherapies];

如何在Xcode 5中解决此问题?

还有一件事,它在Xcode 4.6.3中工作正常,没有发生错误..

enter image description here

2 个答案:

答案 0 :(得分:3)

它与xcode没有任何关系。它与基本sdk标题有关 编译器不知道要使用什么方法显示,因为有很多

将ID中的强制转换添加到您正在使用的对象中,以便它使用正确的显示方法

答案 1 :(得分:1)

编译器可以看到多个display方法(请参阅[CALayer (void)display]),因为您使用id它可能是其中任何一个。

而不是循环中的id,而是使用实际的类:

for (YourClass *object in original)

这将为您提供更多类型检查,并向Xcode提供有关返回类型的提示。