我想在我的项目中实现图表,但是当我打开演示项目时,我得到了这个错误类型' EnumeratedSequence< [CGPoint]>'没有会员' compactMap'我看到此Value of type 'CGPoint' has no member 'makeWithDictionaryRepresentation' in swift 3链接,但错误未解决。
答案 0 :(得分:7)
在Swift 4.0及更早版本中,Sequence
协议有两个版本的flatMap
:
Sequence.flatMap<S>(_: (Element) -> S) -> [S.Element] where S : Sequence
Sequence.flatMap<U>(_: (Element) -> U?) -> [U]
在Swift 4.1中,SE-0187重命名第二个版本compactMap
:
Sequence.flatMap<S>(_: (Element) -> S) -> [S.Element] where S : Sequence
Sequence.compactMap<U>(_: (Element) -> U?) -> [U]
您使用的是已更新为Swift 4.1的图表版本,但您使用的是Swift 4.0编译器。
你可以:
降级为仅使用Swift 4.0的旧版图表。
升级到Xcode 9.3,它支持Swift 4.1。
将图表副本更改为使用flatMap
而不是compactMap
。
在您的图表副本中添加“垫片”以添加compactMap
(感谢BasThomas):
#if swift(>=4.1)
#else
extension Collection {
func compactMap<ElementOfResult>(
_ transform: (Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] {
return try flatMap(transform)
}
}
#endif