プロトコルに準拠した NSObject オブジェクトの配列を返すメソッドを Swift で作成したいと考えています。私はこのようなことを試しました:
func createManagers() -> [Manager] {
let result = NSMutableArray(capacity: self.classes.count)
(self.classes as NSArray).enumerateObjectsUsingBlock { (object: AnyObject!, idx: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
// TODO: do something and fill the result array
}
return result as NSArray as! [Manager]
}
Manager
ご覧のとおりのプロトコルです。return ステートメントでのキャストが常に失敗するというエラーが表示されます。
コンパイラに、NSObject 型のオブジェクトの配列があり、すべての要素が Manager プロトコルに準拠していることを伝えたいと考えています。