Um Code und Ressourcen zwischen meiner App und Erweiterungen zu teilen, bette ich ein Cocoa Touch Framework
in meinem Projekt, dieses Framework enthält einige Ressourcen wie Bild und XIB-Dateien.iOS 8: Ressource von Cocoa Touch Framework erhalten
Meine Frage ist: Wie greife ich auf diese Ressourcen von May Main App und Erweiterungen?
ich verwenden, um dieses Verfahren zu verwenden: iOS 8 Extension: how to use xib inside Cocoa Touch Framework in extensions?
aber dies wird eine Kopie an alle Ressourcen in App-Bündel und Bündel Erweiterungen, das ist keine gute Wiederholung ist.
Gibt es einen besseren Weg?
Update:
Jetzt ist meine Haupt App Code verwenden können Ressource in Frameworks zuzugreifen:
+(NSBundle*)frameworkBundle
{
NSString *frameworkDirPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *frameworkBundlePath = [frameworkDirPath stringByAppendingPathComponent:@"MyFramework.framework"];
NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath];
return frameworkBundle;
}
aber das funktioniert nicht für Erweiterungen.
Es wirft einen anderen Weg als der Code, der ist in der Frage, warum? Was sollen wir verwenden? – Gabox
Das Erstellen von Bundles mit bundleForClass ist besser als das Erstellen aus dem Pfad. Ich konfrontiert dieses Problem während der Entwicklung, in der wir coredata momd Datei von Test-App zu verbrauchen, danach haben wir die App in ein Framework konvertiert und momd als Ressource hinzugefügt. Jetzt suchte die Test-App, die die momd-Datei konsumierte, in mainBundle, während sie jetzt falsch ist. Die momd-Datei wird in das Framework verschoben. Verwenden Sie also immer bundleForClass und geben Sie die Klasse an, die der Ressource am nächsten ist/direkt verwendet. – Omkar