要在我的應用和擴展之間共享代碼和資源,我在我的項目中嵌入了Cocoa Touch Framework
,此框架包含一些資源,如圖像和xib文件。iOS 8:從Cocoa Touch Framework獲取資源
我的問題是:如何從主應用程序和擴展程序訪問這些資源?
我用這個方法:iOS 8 Extension: how to use xib inside Cocoa Touch Framework in extensions?
但這將使應用程序的包和擴展捆綁,這是不是一個很好的重複副本的所有資源。
有沒有更好的方法?
更新:
現在我主要的應用程序可以使用這樣的代碼框架訪問資源:
+(NSBundle*)frameworkBundle
{
NSString *frameworkDirPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *frameworkBundlePath = [frameworkDirPath stringByAppendingPathComponent:@"MyFramework.framework"];
NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath];
return frameworkBundle;
}
但這並不用於擴展工作。
它拋出一個不同的路線比是代碼在問題中,爲什麼?我們應該使用什麼? – Gabox 2015-11-20 21:24:22
使用bundleForClass創建包比從路徑創建要好。 我在開發過程中遇到了這個問題,其中我們正在測試應用程序中的coredata momd文件,之後我們將該應用程序轉換爲框架並添加了momd作爲資源。 現在正在使用momd文件的測試應用程序正在mainBundle中查找它,而現在它不正確。 momd文件在框架內移動。所以總是使用bundleForClass並提供最接近/直接使用資源的類。 – Omkar 2016-11-14 11:23:38