Неразрешенный Идентификатор (переменная) в разных IBActions - PullRequest
2 голосов
/ 06 июля 2019

Итак, я создавал конвертирующее приложение, и мне нужно было использовать 2 IBActions.В одном из них я сделал константу и попытался использовать ее в следующем.Но это не работает.Как я могу разделить константу?

Я использую Xcode 11. Я попытался преобразовать ее в переменную, но безуспешно.

@IBAction func select(_ sender: Any) {
    let foo = "/some/cool/path.txt"
}

@IBAction func convert(_ sender: Any) {
    let contents = try NSString(contentsOfFile: foo, encoding: NSUTF8StringEncoding) // And here comes the error
}

Я хотел использовать константу foo вдругой IBAction, но я получаю Unresolved Identifier "foo".

1 Ответ

2 голосов
/ 06 июля 2019

Правило: все переменные видны только в паре фигурных скобок, в которых они объявлены.

Объявите переменную на один уровень выше и не используйте NSString в Swift

var foo = ""

@IBAction func select(_ sender: Any) {
    foo = "/some/cool/path.txt"
}

@IBAction func convert(_ sender: Any) {
    do {
        let contents = try String(contentsOfFile: foo, encoding: .utf8)
    } catch { print(error) } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...