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不起作用时,这已经让我失望了。
你的NewClass
inheritance自UIViewController
。 您在ViewController
声明了signedIn
。 如果你希望NewClass
能够识别这个variables,它将不得不在你的NewClass
inheritance的类中声明。
另一个地方,我看到这个错误是当你的项目有多个目标和多个桥接头 。 如果是共享类,请确保将资源添加到所有桥接头。
一个好的提示是查看左边的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是否在单独的工作区中工作。