错误:无法下标'inout [Agenda]'类型的值(又名'inout Array <agenda>')

时间:2016-03-05 19:05:59

标签: ios arrays swift uitableview

我正在制作一个应用程序,当你按下按钮说紧急时,有一个标签上写着“紧急”。就在我使用按钮实现用户交互之前,我有一个数组(如下所示),其中一些对象有REORGANIZE PARTITION,但有些对象有urgent = true,所以我可以从我的代码开始。

数组,位于urgent = false

MainTableViewController.swift

然后,我有一个名为var content:[Agenda] = [ Agenda(subject: "Read this article", deadline: "1-2 days", urgent: false), Agenda(subject: "Respond to this email", deadline: "ASAP", urgent: true), Agenda(subject: "Add this to diary", deadline: "When at home", urgent: true), Agenda(subject: "Listen to this song", deadline: "When finished working", urgent: false), Agenda(subject: "Check out this holiday destination", deadline: "At the weekend", urgent: false), Agenda(subject: "Download this podcast", deadline: "1-4 days", urgent: false), Agenda(subject: "Update notes", deadline: "When at home", urgent: true) ] 的课程,我在其中声明Agenda.swiftsubjectdeadline

以下是我显示“紧急”的代码:

urgent

在第一行,我收到以下错误:

  

无法下标'inout [Agenda]'类型的值(又名'inout Array')

4 个答案:

答案 0 :(得分:6)

这是经典赋值运算符(=)与方程运算符(==)的混淆。

答案 1 :(得分:4)

当我将数组作为参数值订阅到具有错误签名的方法时,我遇到了同样的错误。也就是说,其中一个参数标签是错误的,但编译器将错误报告为无法下标数组。一旦我从方法调用中取出数组访问,就会显示真正的错误。

答案 2 :(得分:1)

正如评论中的部分解释,这一行

if content[indexPath.row].urgent = true {

正在尝试设置紧急值,而不是检查紧急值。

如果您想使用该模式,只需添加一个额外的=符号

if content[indexPath.row].urgent == true {

此外,if语句将直接评估布尔值,因此您甚至不需要进行比较

if content[indexPath.row].urgent {

答案 3 :(得分:0)

对于Swift3问题:我有一本没有

的字典
 as [String:Any]

最后,所以编译器告诉我我不能下标一个inout对象。补充说,最终和繁荣,解决了。