我一直在尝试通过感谢函数并将它们添加到extension
的单独文件ViewController
中来重构代码
我在这个扩展中有一个函数,它将gesture recognizers
添加到一些视图中,这些视图引用了我放在同一个ViewController
的其他文件扩展名中的函数。在构建时我收到此错误“Swift键路径中的预期表达式”
导致此错误的原因是什么?
这是一个不确定的错误。当我在对象init中的括号后不小心留下反斜杠时出现此错误:
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()
}
删除反斜杠修复了错误。
也许你有拼写错误,例如:
\//
// MyClass.swift
// yyy
//
// Created by xxx on 4/25/19.
// Copyright © 2019 xxx. All rights reserved.
//
import Foundation
class MyClass {
}
在这个案例中,我偶然在开头写了'\'。
此错误消息是一个直接的错误,其中解析器期望keyPath
,给定反斜杠的使用(假设这是导致问题的问题,考虑到@Edmund Holderbaum的先前答案被接受)。
摘录自:Apple Inc.“The Swift Programming Language(Swift 5.0)。”
关键路径表达。键路径表达式是指类型的属性或下标。您可以在动态编程任务中使用键路径表达式,例如键值观察。它们具有以下形式:
\ type name.path
除了字符串插值(interpolated-text-item)或转义序列(转义序列)之外,Swift语法中似乎很少使用反斜杠。
从语法概述 - 词汇结构
“key-path-expression→\ type opt。关键路径组件”
看一下这篇优秀文章,了解更多关于斯威夫特的keyPaths
:https://www.swiftbysundell.com/posts/the-power-of-key-paths-in-swift