Abgerufener Ergebnis Controller-Delegat, der nach dem schnellen Update von 1.2 / xcode 6.3 nicht aufgerufen wurde

8

Ich habe gerade mein Projekt auf swift 1.2 hochgestuft. Und nach 5 oder 6 aufeinander folgenden 'Konvertieren zu neuesten Swift' Aktion, konnte ich es kompilieren. Dann hatte ich viel von meinem UI-Test fehlgeschlagen. Es war aufgrund der Tatsache, dass meine 'NSFetchedResultsControllerDelegate' nicht mehr aufgerufen wurde.

Nachdem (ich könnte sagen) ein sehr glücklicher Versuch, fand ich, dass es aufgrund der Tatsache, dass mein Delegierter kein NSObject war. So konnte ich es beheben, indem ich NSObject abbaut oder @obj hinzufügt.

Vorher:

%Vor%

Nachher: ​​

%Vor%

Ich glaube nicht, dass ich etwas in diesem Änderungsprotokoll gesehen habe. Was sind die Veränderungen, die dazu führen? Hast du andere Veränderungen wie diese bemerkt?

    
valR 09.04.2015, 10:43
quelle

2 Antworten

7

Ich habe das von Apple erhalten, nachdem ich einen Fehlerbericht ausgefüllt habe:

  

Dieses Problem verhält sich wie folgt basierend auf dem folgenden:

     

Dies ist eine Verhaltensänderung in Swift 1.2: Methoden in nicht von Objective-C abgeleiteten Klassen werden nicht mehr implizit als @objc markiert, selbst wenn sie einem Objective-C-Protokoll entsprechen. Sie können die Methoden explizit mit dem @objc-Attribut markieren, wenn Sie NSObject nicht erweitern möchten. Dies wird in den Versionshinweisen zu Xcode 6.3 unter Ссылка .

    
valR 13.04.2015, 22:10
quelle
0

Core Data-Klassen verhalten sich immer noch sehr ähnlich wie ältere Objective-C-Klassen. Da NSFetchedResultsController eine @protocol ohne Oberklasse ist, benötigt Swift die explizite Deklaration NSObject .

Und Sie haben recht, da ist nichts in den Änderungsprotokollen.

    
Mundi 09.04.2015 22:42
quelle

Tags und Links