目标C警告我不明白

时间:2013-12-26 21:50:15

标签: objective-c

任何人都可以向我解释为什么我会收到这些警告:

Conflicting parameter types in implementation of 'setCardsSelected': 'NSMutableArray *' vs 'NSUInteger' (aka 'unsigned long')
Conflicting return type in implementatin of 'setCardsSelected': 'void' vs 'NSMutableArray *'

我只是想将NSUInteger传递给一个函数。为什么这不起作用?我的方法声明错了吗?谢谢!

- (NSMutableArray *) setCardsSelected:(NSUInteger) index
{
    if (!_cardsSelected) _cardsSelected = [[NSMutableArray alloc] init];

    return _cardsSelected;
}

1 个答案:

答案 0 :(得分:0)

修改

问题是你已经定义了属性cardsSelected,相关的setter是setCardsSelected:(当然是-(void)setCardsSelected:(NSMutableArray*)array)。

您必须更改您的方法名称(与selectCards:相邻吗?)或使用其他设置器声明您的属性,如下所示:

@property ( nonatomic, strong, setter=setterSelector: ) NSMutableArray * cardsSelected

我认为重命名你的方法更合适。


是的,你的方法声明是错误的。

我猜你要覆盖子类中的方法setCardsSelected:;在超类(或采用的协议)中我猜它是-(void)setCardsSelected:(NSMutableArray*)array