¿Cómo puedo emitir un NSMutableArray a una matriz Swift de un tipo específico?

Estoy migrando mi proyecto de iOS a Swift. Estoy haciendo esta clase por clase. Cuando llamo a los métodos Objective C desde Swift, muchos tipos de Objective C se convierten en sus contrapartes Swift.

En mi caso, un objetivo CNSMutableArray se convierte en Swift'sArray<AnyObject>. Ahora aquí viene mi problema. Dentro de mi clase Swift, obtengo una matriz de un objeto Objective C. Ahora que estoy en el mundo Swift, me gustaría convertir esta matriz a un tipo específico en lugar deAnyObject, porque sé con certeza qué tipo de objetos existen en esta matriz.

¡El compilador no me deja hacer eso! Permítanme simplificar mi problema diciendo que quiero convertir a una matriz que contiene cadenas. Esto es lo que probé:

var strings = myObjcObject.getStrings() as [String]

Me sale el siguiente error del compilador:

'String' no es idéntico a 'AnyObject'

Tendría que estar de acuerdo con el compilador, ya que String no es idéntico a AnyObject. Pero no veo por qué eso es un problema. Puedo rechazar AnyObject to String si quiero, ¿verdad?

También probé:

var strings = myObjcObject.getStrings() as? [String]

Esto parece ser un paso en la dirección correcta, pero getStrings () devuelve unNSMutableArray entonces me sale el siguiente error:

'NSArray' no es un subtipo de 'NSMutableArray'

¿Hay alguna forma de hacer lo que estoy tratando de hacer aquí?

Respuestas a la pregunta(7)

Su respuesta a la pregunta