objective-c - NSArray 上的 'void' 是什么?

标签 objective-c ios cocoa-touch

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

相关文章:

iphone - 基本的 CCArray 理解

ios - 解析 PFUser CurrentUser 返回 Null

ios - 模板中缺少 UITableView 数据源和委托(delegate)

objective-c - 具有(复杂)关系和核心数据/RAILS 的 Restkit

iphone - 由于 iphone 自动锁定导致应用程序崩溃?

objective-c - Objective C 中的 Key-Value-Coding 和 Key-Value-Observing 是什么?

ios - Core Data 是否保留 NSMutableArray 中对象的顺序?

iphone - 运行时问题 - 使用 performSegueWithIdentifier 时出现 "Nested push animation"

iphone - iPhone如何自动插入小数位?

objective-c - 为什么这个 UIImageView 自动居中?