"Ожидаемое выражение в пути ключа Swift" Ошибка при рефакторинге кода с расширениями

Я пытался рефакторинг кода, поблагодарив функции и добавив их в отдельный файл extension из ViewController

В этом расширении есть функция, которая добавляет gesture recognizers к некоторым представлениям, которые имеют ссылки на функции, которые я поместил в другое расширение файла того же ViewController, При сборке я получаю эту ошибку "Ожидаемое выражение в пути ключа Swift"

Что вызывает эту ошибку?

0 ответов

Это неясная ошибка, чтобы быть уверенным. Я получил эту ошибку, когда случайно оставил обратную косую черту после скобки в моем объекте init:

init(for note: Note, atAnchor anchor: ARAnchor) {\

    let billboardNode = lote.type.basicNode

    self.node = billboardNode
    self.text = lote.description ?? "[No Text]"
    self.type = lote.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. "Язык программирования Swift (Swift 5.0)".

Key-Path Expression. Выражение key-path ссылается на свойство или индекс нижнего уровня. Вы используете выражения пути ключа в задачах динамического программирования, таких как наблюдение значения ключа. Они имеют следующую форму:

\ type name.path

Кажется, в грамматике Swift мало мест, где используется обратный слеш, кроме как при интерполяции строк (interpolated-text-item) или в экранирующей последовательности (escape-последовательности).

из резюме грамматики - лексическая структура

"Key-path-expression → \ type opt . ключ-путь-компонента"

Посмотрите на этот отличный пост, чтобы узнать больше о keyPaths в Swift: https://www.swiftbysundell.com/posts/the-power-of-key-paths-in-swift

Другие вопросы по тегам