Swift中“使用未parsing的标识符”

所以我一直在制作一个应用程序,一切都很好。 但是今天我像往常一样做了一个新的类,由于某种原因,我不能从其他类访问Public / Globalvariables。 所有其他class级都可以,但是现在当我尝试创build一个新class级的时候,我不能这样做。 这将如何解决?

我正在使用Swift和Xcode 6。

工人阶级:

import UIKit import Foundation import Parse import CoreData var signedIn = true class ViewController: UIViewController { 

新class:

 import UIKit class NewClass: UIViewController { override func viewDidLoad() { super.viewDidLoad() signedIn = false } 

但在signedIn = false

use of unresolved identifier signedIn

一个可能的问题是,你的新class级有不同的目标或另一个不同的目标。

例如,它可能有一个testing目标,而另一个则没有。 对于这个特定的情况,你必须将所有的类都包含在testing目标中,或者不包含它们。

目标

对我来说,这个错误发生是因为我试图调用一个嵌套函数。 我唯一需要做的就是把这个function带到一个可见的范围。

因为你还没有宣布。 如果你想使用另一个类的variables,你必须使用

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var DestViewController : ViewController = segue.destinationViewController as ViewController DestViewController.signedIn = false } 

您必须将此代码放在NewClass代码的末尾

有时编译器会对你的类中的语法感到困惑。 如果你从其他地方粘贴源代码,这会发生很多事情。

尝试减less“未解决的”源文件到最低限度,清理和build设。 一旦build立成功,将所有的复杂性添加到您的class级。

当重新启动Xcode不起作用时,这已经让我失望了。

你的NewClassinheritance自UIViewController 。 您在ViewController声明了signedIn 。 如果你希望NewClass能够识别这个variables,它将不得不在你的NewClassinheritance的类中声明。

另一个地方,我看到这个错误是当你的项目有多个目标多个桥接头 。 如果是共享类,请确保将资源添加到所有桥接头。

一个好的提示是查看左边的Issue Navigator面板; 根对象将显示发出投诉的目标。

如果这是关于您创build的类,请确保该类不是嵌套的。

A.swift

 class A { class ARelated { } } 

调用var b = ARelated()会给'使用未parsing的标识符:ARelated'。

你可以:

1)如果想在同一个文件中分开类:

A.swift

 class A { } class ARelated { } 

2)保持相同的结构,并使用封闭类来到子类:

var b = A.ARelated

我犯了一个愚蠢的错误。 我忘记提及类在公共或更新代码在cocoapod工作区中打开。

请检查accesor是否在单独的工作区中工作。