Error: no se puede subcribir un valor de tipo 'inout ' (también conocido como 'inout Array <Agenda>')

Estoy haciendo una aplicación de la que cuando presionas un button que dice que es urgente, hay una label que dice "URGENTE". Justo antes de implementar la interacción del usuario con el button, tengo una matriz (como a continuación) con algunos objects que tienen urgent = true , pero algunos tienen urgent = false , por lo que puedo comenzar con mi código.

La matriz, que se encuentra en 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) ] 

Entonces, tengo una class llamada Agenda.swift donde declaro el subject , deadline y urgent .

Aquí está el código donde muestro el "URGENTE" o no:

 if content[indexPath.row].urgent = true { cell.urgentLabel.text = "URGENT" } else { cell.urgentLabel.text = "" } 

En la primera línea, aparece el siguiente error:

No se puede subcribir un valor de tipo 'inout [Agenda]' (también conocido como 'inout Array')

Es el operador de asignación clásico ( = ) vs. operador de ecuación ( == ) confusión.

Me encontré con este mismo error cuando estaba suscribiendo una matriz como un valor de argumento a un método que tenía una firma incorrecta. Es decir, una de las tags de los arguments era incorrecta, pero el comstackdor informó el error como una incapacidad para subcribir la matriz. Una vez que saqué el acceso a la matriz de la llamada de método, se reveló el verdadero error.

Como se explica parcialmente en los comentarios, esta línea

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

Está intentando establecer el valor de urgente, no verificar el valor de urgente.

Si desea usar ese patrón, simplemente tiene que agregar un signo adicional =

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

Además, una instrucción if evaluará un valor boolean directamente, por lo que ni siquiera necesita la comparación

 if content[indexPath.row].urgent { 

Para los problemas de Swift3: tuve un dictionary que no tenía

  as [String:Any] 

Al final, el comstackdor me dijo que no puedo subcribir un object inout. Añadimos eso al final y auge, resuelto.