Como converter um NSMutableArray em uma matriz Swift de um tipo específico?

Estou migrando meu projeto iOS para o Swift. Eu estou fazendo essa aula por aula. Quando chamo os métodos de Objective C da Swift, muitos tipos de Objective C são convertidos em suas contrapartes do Swift.

No meu caso, um objetivo CNSMutableArray é convertido em SwiftArray<AnyObject>. Agora aqui vem o meu problema. Dentro da minha classe Swift, eu recebo essa matriz de volta de um objeto Objective C. Agora que estou no mundo Swift, gostaria de converter essa matriz para um tipo específico, em vez deAnyObject, porque sei com certeza que tipo de objetos existem nessa matriz.

O compilador não me deixa fazer isso! Deixe-me simplificar o meu problema dizendo que quero converter para uma matriz que contém seqüências de caracteres. Isto é o que eu tentei:

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

Eu recebo o seguinte erro do compilador:

'String' não é idêntico a 'AnyObject'

Eu teria que concordar com o compilador, pois String não é realmente idêntico a AnyObject. Mas não vejo por que isso é um problema. Posso fazer o downcast de AnyObject para String, se eu quiser, certo?

Eu também tentei:

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

Este parece ser um passo na direção certa, mas getStrings () retorna umNSMutableArray então eu recebo o seguinte erro:

'NSArray' não é um subtipo de 'NSMutableArray'

Existe alguma maneira de fazer o que estou tentando fazer aqui?

questionAnswers(7)

yourAnswerToTheQuestion