array = [NSMutableArray arrayWithArray:[set allObjects]];
Run Code Online (Sandbox Code Playgroud)
这适用于NSSet,但我如何让它与一个NSMutableOrderedSet?
objective-c nsmutablearray ios nsorderedset nsmutableorderedset
在Xcode 6中,KCOrderedAccessorFix在以下行中产生错误:
NSMutableOrderedSet *primitive = objc_msgSend(_s, fastPrimitiveGetter)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢,
我正在尝试实现一个通用的 Mutable Ordered Set 类型,它需要符合许多协议才能与 Array 和 Set 在 Swift 中的行为方式相同。首先要做到的是,泛型类型元素的需求,以符合Hashable和通用结构需要顺应RandomAccessCollection,SetAlgebra,ExpressibleByArrayLiteral,AdditiveArithmetic,RangeReplaceableCollection和MutableCollection。我想也允许其访问标SubSequence添加支持PartialRangeThrough,PartialRangeUpTo,PartialRangeFrom和UnboundedRange也。
这是我的通用OrderedSet结构声明:
public struct OrderedSet<Element: Hashable> {
public init() { }
private var elements: [Element] = []
private var set: Set<Element> = []
}
Run Code Online (Sandbox Code Playgroud)
尽管这是一个自我回答的问题,但我真的很感激并鼓励提供新的答案、有关此实现的一些反馈和/或有关如何修复/改进它的建议:
编辑/更新:
该sorted方法按预期工作,但sort它的变异甚至不会改变元素顺序。
可变集合
声明变异
功能排序()
当 Self 符合 RandomAccessCollection 并且 Element 符合 Comparable 时可用。
var …Run Code Online (Sandbox Code Playgroud)