如何为Swift定义泛型typealias以返回特定类型的对象?

如何为Swift定义泛型typealias以返回特定类型的对象?,swift,Swift,下面是我的简单课程: class PersistentStoreCoordinatorMock: Storageable { var objects = [T]() // here I need to define return array func findAll<T: NSManagedObject>(of type: T.Type, predicate: NSPredicate) -> [T] { findAllWasCalled = tr

下面是我的简单课程:

class PersistentStoreCoordinatorMock: Storageable {
    var objects = [T]() // here I need to define return array
    func findAll<T: NSManagedObject>(of type: T.Type, predicate: NSPredicate) -> [T] {
        findAllWasCalled = true
        return objects //here I need to return this when that function was called
    }
}
class PersistentStoreCoordinatorMock:可存储{
var objects=[T]()//这里我需要定义返回数组
func findAll(类型:T.type,谓词:NSPredicate)->[T]{
findAllWasCalled=true
return objects//这里我需要在调用该函数时返回它
}
}

我怎样才能做到这一点呢?

如注释中所述,
T
未在类范围内定义。您需要使用类声明指定泛型类型,以便可以在整个类中使用它。
试试这个:

class PersistentStoreCoordinatorMock:可存储{
var objects=[T]()//这里我需要定义返回数组
func findAll(类型:T.type,谓词:NSPredicate)->[T]{
findAllWasCalled=true
return objects//这里我需要在调用该函数时返回它
}
}

我更喜欢有关联类型的协议,请看我不懂
T
不是在类范围中定义的,但如果您要在那里引用它,它需要在那里定义。(也许能弄清楚它是什么,因为它肯定不是一个
T
。我同情那些必须使用名为
T
的东西的傻瓜。至少要将属性的名称大写;即
PersistentStoreCoordinatorMock
[对象]()