我在头文件中定义了一个NSArray,如下所示:

@property (nonatomic, retain) NSArray *ages;


在我的实现中,我想像这样设置此变量:

ages = [self setAges:[ageValues allKeys]];


'ageValues'是NSDictionary。因此,我要做的只是将键数组设置为自定义数组。奇怪的是,我收到以下错误消息:

从不兼容的类型'void'分配给'NS Array *'

但是我在哪里可以找到无效的东西?在我的选择中,我只是将另一个数组([ageValues allKeys)设置为我自己的数组,我找不到任何无效的东西???

最佳答案

setAges:方法是一种返回void的方法,换句话说:它什么也不返回(甚至不返回nil;它实际上什么也不返回)。现在,您不能为变量分配“空”。

话虽这么说,您的代码想做两次相同的事情。您要做的只是:

self.ages = [ageValues allKeys];


要么:

[self setAges:[ageValues allKeys]];


它们的功能完全相同,但是使用不同的语法(编译器将第一种转换为第二种)。

关于objective-c - NSArray上的“无效”是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8413634/

10-10 21:06