Here’s one more tiny but helpful tip from my Swift experience.
In my relatively big Swift project I have to use Foundation framework classes, which sometimes causes certain issues. Today I’ll tell you about one of those issues and the solution to it.
Suppose we have a variable of NSMutableArray type and we need to convert it into, say, Swift array with strings. Apparently the code should look like:
var nsArray = NSMutableArray() ... var swiftArray = nsArray as [String]
However, the compiler won’t accept it:
‘String’ is not identical to ‘AnyObject’
To resolve this, write the code as:
var nsArray = NSMutableArray() ... var swiftArray = nsArray as AnyObject as [String]
Voila! Now we can work with such arrays like with any ordinary Swift array.
The same issue occurs (and the same solution can be applied) when converting NS(Mutable)Dictionary into Swift dictionary.