Xcode报错:Cannot find ‘UserSelectedSource’ in scope
Xcode报错:Cannot find ‘UserSelectedSource’ in scope

Xcode报错:Cannot find ‘UserSelectedSource’ in scope

在修改代码的过程中,突然发现多了一些报错。

开始时,还以为属性或方法在异步任务、闭包或者类方法中被访问时,需要显式的使用self,但实际上之前也运行正常且没有这些报错。

func judgeSource() {
    print("判断用户选择的汇率数据来源")
    switch UserSelectedSource { // 报错行代码
    case 0:
        print("调取某汇率中心的数据")
        Task {
            await loadForeignExchange()
            calculaterReserveAmount()   // 报错行代码
        }
        break
    default:
        print("judgeSource报错,退出judgeSource函数")
        break
    }
}

随后在尝试在静态上下文中调用self:

func judgeSource() {
    print("判断用户选择的汇率数据来源")
    switch self.UserSelectedSource {    // 报错行代码
    case 0:
        print("调取某汇率中心的数据")
        Task {
            await loadForeignExchange()
            self.calculaterReserveAmount()  // 报错行代码
        }
        break
    default:
        print("judgeSource报错,退出judgeSource函数")
        break
    }
}

修改后,Xcode报新的错误:

Cannot find 'self' in scope; did you mean to use it in a type or extension context?

表示在静态上下文中,找不到self。

当我依次检查各项错误时,发现底部的错误为:

Extraneous '}' at top level
Remove '}'

这就说明问题出在符号上,可能是某处多余/缺少括号。

在点击系统提示的“Fix”修复按钮后,底部最外层的大括号包围消失了。

使用Command + A全选后,使用Command + I格式化,

发现Class类并没有包裹底部的方法,导致代码执行时查找不到对应的上下文。

最后的结局方案就是将Class类的右大括号移至代码底部。

问题得到解决。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注