这是我的代码:
func cache<T: Cacheable>(type: Int, items: Array<T>, options: CacheOptions?) {
log(log_http, "caching ... \(items)")
for item: Cacheable in items {
let key: String? = item.primaryKeyValue()
}
}
这很简单,Cacheable是一个协议:
public protocol Cacheable: class {
func primaryKeyValue() -> String?
}
编译总是因信号问题而失败。 但是,如果我从Cacheable中删除:class,编译将会通过,但是当我需要时:
NSCache().setObject(item, forKey: "key")
它抱怨Cacheable不符合AnyObject协议,所以我坚持到这里。有帮助吗?感谢。