我在这样的头文件中定义了一个 NSArray:
@property (nonatomic, retain) NSArray *ages;
在我的实现中,我想像这样设置这个变量:
ages = [self setAges:[ageValues allKeys]];
'ageValues' 是一个 NSDictionary。所以我所做的只是将键数组设置为我自定义的数组。奇怪的是,我收到以下错误消息:
从不兼容类型“void”分配给“NS 数组*”
但是我在哪里可以找到空的东西呢?在我看来,我只是将另一个数组 ([ageValues allKeys) 设置为我自己的数组,但我找不到任何无效的东西???
最佳答案
setAges:
方法是一个返回void
的方法,换句话说:它返回nothing(甚至不返回nil
或其他东西;它实际上没有返回任何东西)。现在您不能将“无”分配给变量。
话虽如此,您的代码想要做同样的事情两次。您要做的只是:
self.ages = [ageValues allKeys];
或:
[self setAges:[ageValues allKeys]];
它们做的完全一样,但使用不同的语法(编译器将第一个转换为第二个)。
关于objective-c - NSArray 上的 'void' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8413634/