Also habe ich eine App erstellt und alles hat super funktioniert. Aber heute habe ich wie üblich eine neue Klasse erstellt und aus irgendeinem Grund kann ich in dieser Klasse nicht von anderen Klassen auf öffentliche / globale Variablen zugreifen. Alle anderen Klassen können, aber jetzt, wenn ich versuche, eine neue Klasse zu machen, kann ich nicht. Wie würde das behoben werden?
Ich benutze Swift und Xcode 6.
Arbeiterklasse:
import UIKit
import Foundation
import Parse
import CoreData
var signedIn = true
class ViewController: UIViewController {
Neue Klasse:
import UIKit
class NewClass: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
signedIn = false
}
Aber weiter signedIn = false
Ich bekomme den Fehler:
Verwendung der ungelösten Kennung "signiert"
}
am Ende IhresviewDidLoad()
Antworten:
Ein mögliches Problem ist, dass Ihre neue Klasse ein anderes Ziel oder andere Ziele als die andere hat.
Zum Beispiel könnte es ein Testziel haben, während das andere dies nicht tut. Für diesen speziellen Fall müssen Sie alle Ihre Klassen in das Testziel aufnehmen oder keine von ihnen.
quelle
'Verwendung des nicht aufgelösten Bezeichners' in Swift kann auch passieren, wenn Sie vergessen haben, eine Bibliothek zu importieren. Zum Beispiel habe ich den Fehler:
In dem habe ich das vergessen
UIKit
quelle
Manchmal ist der Compiler verwirrt über die Syntax in Ihrer Klasse. Dies passiert häufig, wenn Sie die Quelle von einem anderen Ort einfügen.
Versuchen Sie, die "ungelöste" Quelldatei auf das Nötigste zu reduzieren, zu reinigen und zu erstellen. Sobald es erfolgreich erstellt wurde, fügen Sie Ihrer Klasse die gesamte Komplexität zurück.
Dies hat es für mich verschwinden lassen, als das Neustarten von Xcode nicht funktioniert hat.
quelle
Ein anderer Ort, an dem ich diesen Fehler gesehen habe, ist, wenn Ihr Projekt mehrere Ziele UND mehrere Überbrückungsheader hat . Wenn es sich um eine gemeinsam genutzte Klasse handelt, stellen Sie sicher, dass Sie die Ressource allen Bridging-Headern hinzufügen.
Ein guter Tipp ist, im linken Issue Navigator-Bereich nachzuschauen. Das Stammobjekt zeigt das Ziel an, das die Beschwerde ausstellt.
quelle
Bei mir ist dieser Fehler aufgetreten, weil ich versucht habe, eine verschachtelte Funktion aufzurufen . Das einzige, was ich tun musste, um es reparieren zu lassen, war, die Funktion in einen Bereich zu bringen , in dem sie sichtbar war.
quelle
In meinem Fall hatte ich eine Object-C-Datei, die sich ebenfalls in derselben Zielmitgliedschaft befand. Ich habe das Problem behoben, indem ich eine
#import "YourObjectCFileHeader.h"
Datei hinzugefügt habeBridging-Header.h
quelle
Einmal hatte ich dieses Problem nach dem Umbenennen einer Datei. Ich habe die Datei in Xcode umbenannt, aber danach konnte Xcode die Funktion in der Datei nicht finden. Selbst eine saubere Neuerstellung hat das Problem nicht behoben, aber das Schließen und anschließende erneute Öffnen des Projekts hat den Build zum Laufen gebracht.
quelle
Weil du es nicht deklariert hast. Wenn Sie eine Variable einer anderen Klasse verwenden möchten, müssen Sie diese verwenden
Sie müssen diesen Code am Ende des NewClass-Codes einfügen
quelle
Dein
NewClass
Erbe vonUIViewController
. Sie erklärtsignedIn
inViewController
. Wenn SieNewClass
diese Variable identifizieren möchten , muss sie in einer Klasse deklariert werden, von der SieNewClass
erben.quelle
Ich habe diesen Fehler für Mantle Framework in meinem Objective-Swift-Projekt erhalten. Was ich versucht habe ist,
Wenn Sie zwischen der privaten Mitgliedschaft wechseln, erstellen Sie zuerst das Projekt und erhalten Fehler. Erstellen Sie dann das Projekt mit Public Membership für alle Frameworks, die für die Datei Mantle.h angezeigt wurden. Sie müssen Erfolg haben.
Es ist nur ein Fehler beim Erstellen mit mehreren Frameworks im Objective-C Swift-Projekt.
quelle
Wenn es sich um eine von Ihnen erstellte Klasse handelt, stellen Sie sicher, dass die Klasse nicht verschachtelt ist.
Fe
A. schnell
Der Aufruf
var b = ARelated()
gibt 'Verwendung der ungelösten Kennung: ARelated'.Du kannst entweder:
1) Trennen Sie die Klassen, falls gewünscht, in derselben Datei:
A. schnell
2) Behalten Sie dieselbe Struktur bei und verwenden Sie die einschließende Klasse, um zur Unterklasse zu gelangen:
var b = A.ARelated
quelle
Ich habe einen dummen Fehler gemacht. Ich habe vergessen, die Klasse beim Aktualisieren des Codes im Cocoapod-Arbeitsbereich als öffentlich oder offen zu erwähnen.
Bitte überprüfen Sie, ob der Zugang erfolgt, wenn Sie in einem separaten Arbeitsbereich arbeiten.
quelle
Sie haben vergessen, die Variable zu deklarieren. Einfach
var
vorsignedIn = false
quelle
viewDidLoad
.Mein Problem bestand darin, mein Programm mit demselben Namen wie einen seiner Cocoapods aufzurufen. Es verursachte einen Konflikt. Lösung: Erstellen Sie ein Programm mit einem anderen Namen.
quelle
Dies bezieht sich nicht direkt auf Ihr Codebeispiel, sondern im Allgemeinen auf den Fehler. Ich schreibe es hier, weil Google diesen Fehler auf diese Frage weiterleitet, sodass es für die anderen Entwickler nützlich sein kann.
Ein weiterer Anwendungsfall, bei dem ein solcher Fehler auftreten kann, ist das Hinzufügen eines Selektors zur Methode in einer anderen Klasse, z.
Und dann in einer anderen Klasse:
Wenn in der letzten Zeile würden Sie rufen Sie einfach
#selector(cancelActionHandler)
statt#selector(MockTextFieldTarget.cancelActionHandler)
, würden Sie bekommenError.
quelle