¿Por qué no puedo usar la suscripción en un objeto CKRecord en Swift?

Esto me ha molestado por un tiempo. ¿Hay alguna razón por la que necesito hacer esto para establecer un objeto en un CKRecord?

task.record?.setObject(task.reference, forKey:ReferenceField)

en lugar de esto

task.record?[ReferenceField] = task.reference 

Por lo que leí en los documentos, CKRecord debería ser amigable con los subíndices

Respuestas a la pregunta(1)

Su respuesta a la pregunta