"Expected expression in Swift key path" 使用扩展重构代码时出错
"Expected expression in Swift key path" Error while Refactoring code with Extensions
我一直在尝试重构代码,方法是感谢函数并将它们添加到 ViewController
的单独文件 extension
中
我在这个扩展中拥有的是一个函数,它将 gesture recognizers
添加到一些视图,这些视图引用了我放在相同 ViewController
的其他文件扩展名中的函数。在构建时我收到此错误 "Expected expression in Swift key path"
导致此错误的原因是什么?
当我不小心在对象初始化中的括号后留下反斜杠时出现此错误:
init(for note: Note, atAnchor anchor: ARAnchor) {\
let billboardNode = note.type.basicNode
self.node = billboardNode
self.text = note.description ?? "[No Text]"
self.type = note.type
addText()
}
删除反斜杠修复了错误。请查看用户 eharo2 的 以了解有关原因的详细信息!
此错误消息是一个直接的错误,其中解析器期望 keyPath
,因为使用了反斜杠(假设这是导致问题的原因,考虑到@之前的回答Edmund Holderbaum 被录取了)。
摘自:Apple Inc.“Swift 编程语言 (Swift 5.0)。”
Key-Path Expression. A key-path expression refers to a property or
subscript of a type. You use key-path expressions in dynamic
programming tasks, such as key-value observing. They have the
following form:
\type name.path
除了字符串插值 (interpolated-text-item) 或转义序列 (escape-sequence) 之外,Swift 语法中似乎很少有地方使用反斜杠。
来自语法总结 - 词汇结构
“key-path-expression → \ type opt . key-path-components”
看看这个优秀的 post 以了解更多关于 Swift 中的 keyPaths
的信息:https://www.swiftbysundell.com/posts/the-power-of-key-paths-in-swift
可能是你打错了,例如:
\//
// MyClass.swift
// yyy
//
// Created by xxx on 4/25/19.
// Copyright © 2019 xxx. All rights reserved.
//
import Foundation
class MyClass {
}
在这种情况下,我不小心在开头写了“\”。
我一直在尝试重构代码,方法是感谢函数并将它们添加到 ViewController
extension
中
我在这个扩展中拥有的是一个函数,它将 gesture recognizers
添加到一些视图,这些视图引用了我放在相同 ViewController
的其他文件扩展名中的函数。在构建时我收到此错误 "Expected expression in Swift key path"
导致此错误的原因是什么?
当我不小心在对象初始化中的括号后留下反斜杠时出现此错误:
init(for note: Note, atAnchor anchor: ARAnchor) {\
let billboardNode = note.type.basicNode
self.node = billboardNode
self.text = note.description ?? "[No Text]"
self.type = note.type
addText()
}
删除反斜杠修复了错误。请查看用户 eharo2 的
此错误消息是一个直接的错误,其中解析器期望 keyPath
,因为使用了反斜杠(假设这是导致问题的原因,考虑到@之前的回答Edmund Holderbaum 被录取了)。
摘自:Apple Inc.“Swift 编程语言 (Swift 5.0)。”
Key-Path Expression. A key-path expression refers to a property or subscript of a type. You use key-path expressions in dynamic programming tasks, such as key-value observing. They have the following form:
\type name.path
除了字符串插值 (interpolated-text-item) 或转义序列 (escape-sequence) 之外,Swift 语法中似乎很少有地方使用反斜杠。
来自语法总结 - 词汇结构
“key-path-expression → \ type opt . key-path-components”
看看这个优秀的 post 以了解更多关于 Swift 中的 keyPaths
的信息:https://www.swiftbysundell.com/posts/the-power-of-key-paths-in-swift
可能是你打错了,例如:
\//
// MyClass.swift
// yyy
//
// Created by xxx on 4/25/19.
// Copyright © 2019 xxx. All rights reserved.
//
import Foundation
class MyClass {
}
在这种情况下,我不小心在开头写了“\”。