Uygulamam ve uzantılarım arasında kod ve kaynakları paylaşmak için, projemde bir Cocoa Touch Framework
gömdüm, bu çerçeve resim ve xib dosyaları gibi bazı kaynaklar içeriyor.iOS 8: Cocoa Touch Framework'den kaynak alın
Sorum şu: Ana kaynak ve uzantılardan bu kaynaklara nasıl erişirim?
Ben bu yöntemi kullanmak kullandı: iOS 8 Extension: how to use xib inside Cocoa Touch Framework in extensions?ama bu uygulamanın paket ve iyi bir tekrar değil uzantıları paket, tüm kaynaklara bir kopyasını yapacaktır.
Daha iyi bir yolu var mı?
Güncelleme:
Şimdi benim ana uygulama çerçevelerinde kaynağa erişmek için böyle bir kod kullanabilirsiniz:
+(NSBundle*)frameworkBundle
{
NSString *frameworkDirPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *frameworkBundlePath = [frameworkDirPath stringByAppendingPathComponent:@"MyFramework.framework"];
NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath];
return frameworkBundle;
}
ancak bu uzantılar için çalışmaz.
Öyle kodu daha farklı bir yol atar soruda, neden? ne kullanmalıyız – Gabox
bundleForClass kullanarak grup oluşturma, yoldan oluşturmadan daha iyidir. Geliştirme sırasında bu sorunu yaşadım, test uygulamasından coredata momd dosyası aldık, bundan sonra uygulamayı bir çerçeveye dönüştürdük ve bir kaynak olarak momd ekledik. Artık momd dosyasını tüketen test uygulaması mainBundle'da arıyordu, oysa şimdi yanlış. momd dosyası çerçeve içinde taşınır. Bu yüzden her zaman bundleForClass kullanın ve kaynağı kullanarak en yakın/doğrudan sınıfı sağlayın. – Omkar