我在头文件中定义了一个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/