nscoding

___ tag123swift ___ Swift ist eine universelle Open-Source-Programmiersprache, die von Apple Inc. für ihre Plattformen und Linux entwickelt wurde. Verwenden Sie das Tag nur für Fragen zu Sprachfunktionen oder für Code in Swift. Verwenden Sie die Tags [ios], [osx], [watch-os], [tvos], [cocoa-touch] und [cocoa] für (sprachunabhängige) Fragen zu den Plattformen oder Frameworks. ___ tag123nsobject ___ NSObject ist die Root-Klasse der meisten Objective-C-Klassenhierarchien. Es hat keine Superklasse. Von NSObject erben andere Klassen eine grundlegende Schnittstelle zum Laufzeitsystem für die Objective-C-Sprache, und ihre Instanzen erhalten ihre Fähigkeit, sich als Objekte zu verhalten. ___ qstntxt ___

Die Klasse %code% muss die Funktion %code% des Typs %code% überschreiben.

Das Aufrufen von %code% für ein Array von %code% -Objekten bewirkt jedoch nicht, dass ein Haltepunkt in der benutzerdefinierten Funktion %code% aufgerufen wird. Ist es möglich, dass eine andere %code% -Funktion diese benutzerdefinierte überschreibt?

Hinweis: Da FooBar eine Unterklasse von NSCoding und NSObject sein muss, listet FooBar Equatable nicht als Protokoll auf, weil dies den folgenden Fehler verursacht:

  

Redundante Übereinstimmung von 'FooBar' mit Protokoll 'Equatable'

%Vor%     
___ tag123ncoding ___ NSCoding ist ein Protokoll des Apple Foundation-Frameworks. Das NSCoding-Protokoll deklariert die beiden Methoden, die eine Klasse implementieren muss, damit Instanzen dieser Klasse codiert und decodiert werden können. ___ tag123equatable ___ hilf uns dieses Wiki zu bearbeiten ___ answer37085980 ___

Sie erhalten diesen Fehler, weil NSObject bereits durch seine isEqual-Methode mit Equatable übereinstimmt.

Ich bin mir also nicht sicher, ob dies der richtige Weg ist, aber Sie könnten die isEqual-Methode von NSObject überschreiben:

%Vor%     
___ answer37085883 ___

Da Ihre Klasse von %code% erbt, müssen Sie nicht das schnelle Protokoll %code% verwenden, sondern Sie müssen die %code% Methode %code% :

überschreiben

Swift 3.x

%Vor%

(Danke an Kamtschatka)

Swift 2.x

%Vor%     
___ qstnhdr ___ Überschrieben == Funktion für Gleichheitstyp nicht für benutzerdefinierte Klasse aufgerufen, die Unterklassen NSCoding und NSObject [duplizieren] ___
1
Antwort

Wie wird das NSCoding-Protokoll mit einer Enumeration verwendet?

Ich habe diese enum: %Vor% und möchte es zusammen mit einigen anderen Variablen unter Verwendung des nscoding Protokolls speichern %Vor% Welche Coder-Methode verwende ich, um diese Art von Enumeration zu decodieren und zu codieren?     
31.01.2013, 09:51
3
Antworten

Schnelle Aufruf-Klassenfunktion von der entsprechenden Unterklasse in der Oberklassenfunktion

Ich möchte init(coder aDecoder: NSCoder!) in einer Oberklasse implementieren und sie in allen Unterklassen verwenden, indem ich zur Laufzeit eine Klassenmethode für die bestimmte Unterklasse in der Oberklasse aufruft. MySuperClass %Vor%...
12.07.2014, 09:20
3
Antworten

Speichern Sie struct in der Klasse NSUserDefaults mit Swift

Ich habe eine Klasse und innerhalb der Klasse ist ein (swift) Array, basierend auf einer globalen Struktur. Ich möchte ein Array mit dieser Klasse in NSUserDefaults speichern. Das ist mein Code: %Vor% Ich habe bereits nach NSObject subklassi...
28.08.2014, 10:36
1
Antwort

Was passiert mit einem NSArray-Objekt beim Verschlüsseln?

Ich erstelle eine Anwendung, die NSCoding verwendet, um NSObject in einem documentPath zu speichern. Ich habe keine Probleme damit, ich bin nur neugierig auf etwas. Ich habe MACompany, die NSCoding-Delegiertenmethoden implementiert. %Vor%...
03.11.2011, 01:20
1
Antwort

Erzwingen von Typen mit NSSecureCoding

Ich habe mich dazu entschieden, NSSecureCoding über NSCoding zu verwenden, aber ich habe Probleme damit, es zum Laufen zu bringen. Ich würde erwarten, dass der folgende Code fehlschlägt, da ich ein NSString codiere, aber versuche, ei...
24.03.2015, 21:09
2
Antworten

Schnelles Codieren von Tupeln mit NSCoding

Kann ein Tupel mit NSCoding gespeichert werden? Ich habe ein Tupel wie ((UInt8, UInt8), (UInt8, UInt8)) . Aber aCoder.encodeObject(myTuple) funktioniert nicht. Muss ich das Tupel in NSData konvertieren oder ist das absolut nicht mögli...
08.03.2015, 17:58
1
Antwort

Wie gebe ich bei der NSCoding-Initialisierung in Swift ein bereits vorhandenes Core Data-Objekt zurück?

Wenn eine Instanz meiner Klasse mit NSCoding initialisiert wird, möchte ich sie durch ein existierendes -Objekt in der Core Data-Datenbank ersetzen, anstatt: aufzurufen %Vor% als das würde ein neues Objekt in die Datenbank einfügen....
12.07.2015, 21:04
2
Antworten

Überschrieben == Funktion für Gleichheitstyp nicht für benutzerdefinierte Klasse aufgerufen, die Unterklassen NSCoding und NSObject [duplizieren]

Die Klasse FooBar muss die Funktion == des Typs Equatable überschreiben. Das Aufrufen von contains für ein Array von FooBar -Objekten bewirkt jedoch nicht, dass ein Haltepunkt in der benutzerdefinierten Funktion == aufgeru...
07.05.2016, 07:34