我正在制作一个应用程序,当你按下按钮说紧急时,有一个标签上写着“紧急”。就在我使用按钮实现用户交互之前,我有一个数组(如下所示),其中一些对象有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.swift
,subject
和deadline
。
以下是我显示“紧急”的代码:
urgent
在第一行,我收到以下错误:
无法下标'inout [Agenda]'类型的值(又名'inout Array')
答案 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对象。补充说,最终和繁荣,解决了。