“Swift键路径中的预期表达式”使用Extensions重构代码时出错

问题描述 投票:0回答:3

我一直在尝试通过感谢函数并将它们添加到extension的单独文件ViewController中来重构代码

我在这个扩展中有一个函数,它将gesture recognizers添加到一些视图中,这些视图引用了我放在同一个ViewController的其他文件扩展名中的函数。在构建时我收到此错误“Swift键路径中的预期表达式”

导致此错误的原因是什么?

ios swift refactoring class-extensions
3个回答
9
投票

这是一个不确定的错误。当我在对象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()
}

删除反斜杠修复了错误。


2
投票

也许你有拼写错误,例如:

\//
//  MyClass.swift
//  yyy
//
//  Created by xxx on 4/25/19.
//  Copyright © 2019 xxx. All rights reserved.
//

import Foundation

class MyClass {

}

在这个案例中,我偶然在开头写了'\'。


1
投票

此错误消息是一个直接的错误,其中解析器期望keyPath,给定反斜杠的使用(假设这是导致问题的问题,考虑到@Edmund Holderbaum的先前答案被接受)。

摘录自:Apple Inc.“The Swift Programming Language(Swift 5.0)。”

关键路径表达。键路径表达式是指类型的属性或下标。您可以在动态编程任务中使用键路径表达式,例如键值观察。它们具有以下形式:

\ type name.path

除了字符串插值(interpolated-text-item)或转义序列(转义序列)之外,Swift语法中似乎很少使用反斜杠。

从语法概述 - 词汇结构

“key-path-expression→\ type opt。关键路径组件”

看一下这篇优秀文章,了解更多关于斯威夫特的keyPathshttps://www.swiftbysundell.com/posts/the-power-of-key-paths-in-swift

© www.soinside.com 2019 - 2024. All rights reserved.