J'ai donc créé une application et tout fonctionne très bien. Mais aujourd'hui, j'ai créé une nouvelle classe comme d'habitude et pour une raison quelconque, je ne peux pas accéder aux variables Public/Global des autres classes. Toutes les autres classes le peuvent, mais maintenant, chaque fois que j'essaie de créer un nouveau cours, je ne le peux pas. Comment cela serait-il réparé?
J'utilise Swift et Xcode 6.
La classe ouvrière:
import UIKit
import Foundation
import Parse
import CoreData
var signedIn = true
class ViewController: UIViewController {
Nouvelle classe:
import UIKit
class NewClass: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
signedIn = false
}
Mais sur signedIn = false
Je reçois l'erreur:
utilisation de l'identifiant non résolu "signedIn"
Un problème possible est que votre nouvelle classe a une cible différente ou des cibles différentes de l’autre.
Par exemple, il peut avoir une cible de test alors que l’autre n’a pas. Pour ce cas spécifique, vous devez inclure toutes vos classes dans la cible de test ou aucune d'entre elles.
Pour moi, cette erreur s’est produite parce que j’essayais d’appeler une fonction imbriquée . La seule chose que je devais faire pour le faire réparer consistait à amener la fonction out à un champ où elle était visible.
J'ai eu cette erreur pour Mantle Framework dans mon projet Objective-Swift . Ce que j'ai essayé, c'est
Basculez entre les membres privés pour créer le projet, puis finissez avec des erreurs. Ensuite, construisez le projet avec une adhésion publique pour tous les cadres apparus dans le fichier Mantle.h, vous devez réussir.
C'est juste un bug de la construction avec plusieurs frameworks dans le projet Objective-C Swift.
Parfois, le compilateur s'embrouille au sujet de la syntaxe de votre classe. Cela arrive souvent si vous collez une source ailleurs.
Essayez de réduire au minimum le fichier source "non résolu", nettoyage et création. Une fois qu'il est construit, ajoutez toute la complexité à votre classe.
Cela m'a fait disparaître lorsque le redémarrage de Xcode n'a pas fonctionné.
Parce que tu ne l'as pas déclaré. Si vous voulez utiliser une variable d'une autre classe, vous devez utiliser
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var DestViewController : ViewController = segue.destinationViewController as ViewController
DestViewController.signedIn = false
}
Vous devez mettre ce code à la fin du code NewClass
Votre NewClass
hérite de UIViewController
. Vous avez déclaré signedIn
dans ViewController
. Si vous voulez que NewClass
puisse identifier cette variable, elle devra être déclarée dans une classe dont votre NewClass
hérite.
Un autre endroit où j'ai vu cette erreur est lorsque votre projet aplusieurs ciblesANDplusieurs en-têtes de pontage. S'il s'agit d'une classe partagée, assurez-vous d'ajouter la ressource à tous les en-têtes de pontage.
Un bon conseil est de regarder dans le panneau de gauche du navigateur; l'objet racine affichera la cible qui émet la plainte.
S'il s'agit d'une classe que vous avez créée, assurez-vous qu'elle n'est pas imbriquée.
F.e
A.Swift
class A {
class ARelated {
}
}
appeler var b = ARelated()
donnera 'Utilisation de l'identifiant non résolu: ARelated'.
Tu peux soit:
1) séparez les classes si vous le souhaitez sur le même fichier:
A.Swift
class A {
}
class ARelated {
}
2) Conservez la même structure et utilisez la classe englobante pour accéder à la sous-classe:
var b = A.ARelated
J'ai fait une erreur stupide. J'ai oublié de mentionner que la classe est publique ou ouverte lors de la mise à jour du code dans l'espace de travail cocoapod.
S'il vous plaît vérifiez si l'accéseur si vous travaillez dans un espace de travail séparé.