Ich habe ein Core Data Objekt, Account
, repräsentiert als eine Unterklasse von NSManagedObject
:
Meine gesamte App hat sich gut entwickelt. Wenn ich jedoch MessageUI.framework
hinzufüge, um einen E-Mail-View-Controller zu erstellen, bricht die Hölle los. Die App verlinkt und kompiliert gut und läuft gut. Bis, das heißt, ich beginne mit meinen zuvor arbeitenden Account
-Objekten zu interagieren. Dann bekomme ich diese:
Diese besondere wurde verursacht durch:
%Vor% Nun, ich vermute, dass es in der MessageUI.framework
eine Klasse gibt, die den Konflikt verursacht, aber ich habe ein paar Fragen:
MFMailComposeViewController
), sollte also das theoretische Konto nicht MFAccount
? #import <MessageUI/MessageUI.h>
oder die etwas engere #import <MessageUI/MFMailComposeViewController.h>
, die letztere, die ich inspizierte und keine Definition von Account
sah, also bin ich mir nicht sicher, warum die möglichen Konflikte überhaupt geladen würden . Ich hatte das mit mir passiert, mit diesem exakten Framework (die Klasse hieß Broadcaster
). In diesem Fall ist das private Message
-Rahmenwerk mit MessageUI
verknüpft, und dieses Framework stellt die Account
-Implementierung bereit.
Sie können überprüfen, ob das MessageUI-Framework eine Account
-Klasse lädt, indem Sie ein neues Projekt erstellen, und in der Methode application:didFinishLaunchingWithOptions:
des Anwendungsdelegaten fügen Sie den folgenden Code hinzu:
Bei einem neuen Projekt wird accountClass = (null)
gedruckt, aber nach dem Hinzufügen von MessageUI wird accountClass = Account
gedruckt.
Wenn Sie class-dump
für das private Message
-Framework verwenden, sehen Sie außerdem die Schnittstellendeklaration für Account
.
Nun listen Sie 5 Artikel in Ihrem Beitrag als Fragen auf, ich werde versuchen, sie anzusprechen
Message
Framework schwach verlinkt ist und somit keinen doppelten Symbolfehler zur Verbindungszeit verursacht. Message
-Framework. #import
, aber at
Laufzeit, alle Klassen werden mit Ihrer Anwendung und dort geladen
ist keine "Sichtbarkeit" oder ähnliches in der Laufzeit erzwungen. So weit wie eine Vorgehensweise, habe ich gerade meine Modellklasse umbenannt, um ein Präfix zu haben. Mir ist keine andere Lösung bekannt.
Es ist möglich, dass das Nachrichtenframework überhaupt nicht das Problem ist. Solche Dinge können unerwartet mit Kerndaten passieren, etwa wenn Sie das Modell irgendwie ändern. Versuchen Sie, den Build zu bereinigen, Ihre Simulator- / Hardware-installierten Test-Apps zu löschen und erneut auszuführen. Der Grund, warum Gerald William vorgeschlagen hat, es umzubenennen, denke ich, besteht darin, dieses Problem zu beheben, aber es ist möglicherweise nicht nötig, etwas umzubenennen.
Sehen Sie sich diesen Thread an: NSManagedObjectModel für Entity konnte nicht gefunden werden
Tags und Links objective-c ios xcode nsmanagedobject messageui