我想在 Swift 中创建一个方法,该方法返回一个符合协议的 NSObject 对象数组。我试过这样的事情:
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
如您所见,是一个协议。我收到返回语句中的强制转换总是会失败的错误。
我想告诉编译器我有一个 NSObject 类型的对象数组,并且所有元素都符合 Manager 协议。