   /// \brief Returns an array containing substrings from the receiver
   /// that have been divided by a given separator.
   func componentsSeparatedByString(separator: String) -> String[] {
-    return _ns
-    .componentsSeparatedByString(separator)
-    ._toStringArray()
+    return (_ns.componentsSeparatedByString(separator) as String[])!
   }
 
   // - (const char *)cStringUsingEncoding:(NSStringEncoding)encoding

  /// \brief Returns an array of strings made by separately appending
  /// to the receiver each string in in a given array.
  func stringsByAppendingPaths(paths: String[]) -> String[] {
    return _ns.stringsByAppendingPaths(_toNSArray(paths))._toStringArray()
  }

  // - (NSString *)substringFromIndex:(NSUInteger)anIndex

      &nsOutputName,
      caseSensitive: caseSensitive,
      matchesIntoArray: matchesIntoArray,
      filterTypes: filterTypes ? filterTypes! : nil
    )
    
    outputName = nsOutputName.map { $0 }
