【发布时间】:2015-11-27 12:25:45
【问题描述】:
我想为 Set 结构添加一个扩展,但前提是 Set 的元素是一个 NSOperations 数组。有可能吗?
我想写这样的东西,但它不是有效的代码:
extension Set where Element : Array<NSOperation> { }
因为type 'Element' constrained to non-protocol type 'Array<NSOperation>。所以我想创建一个协议并用这个协议扩展 NSOperations 数组:
protocol ArrayOfOperations { }
extension Array : ArrayOfOperations where Element : NSOperation { }
它也不起作用,因为Extension of type 'Array' with constraints cannot have an inheritance clause。
所以我有点迷路了。你有什么想法,如何解决这个问题?
【问题讨论】:
-
您将如何构建“NSOperations 数组集”(
Set<[NSOperation]>)?[NSOperation]不是Hashable。 -
@MartinR import Foundation let op = NSOperation() var arr: Array
= [] arr.append(op) let set = Set(arr) -
@user3441734:从数组中创建一个集合并为您提供“NSOperation 集合”,而不是“NSOperation 数组集合”。
-
啊哈,对不起...数组不是可哈希的,你是对的