2015-10-27 52 views
1

我很快就懂技術了。我正在編寫一個框架,這個框架將取決於不屬於框架的文件。它將由導入框架的應用程序創建。Swift框架無法獲得另一個包中的文件

它在模擬器上運行時工作正常,但在界面構建器中的實時渲染會因爲找不到文件而出現抖動。我之前在Objective-c中做過同樣的事情,我知道解決方案是界面構建器正在使用不同的包。解決的辦法是使用:

[[NSBundle bundleForClass:[self class]] pathForResource:<fileName> ofType:<fileType>] 

我在網上搜索,我相信在迅速相當於是:

let path:String? = NSBundle(forClass: self.dynamicType).pathForResource(<fileName>, ofType: <fileType>) 

但是它總是返回實時呈現內爲零。雖然:

let path:String? = NSBundle.mainBundle().pathForResource(<filename>, ofType: <fileType>) 

在模擬器中正常工作,這意味着該文件顯然存在和完成的應用程序的一部分。任何人都有任何想法,爲什麼這可能是?有沒有一個設置我失蹤的地方?

回答

0

在斯威夫特的代碼如下所示:

return NSBundle.init(forClass: <ClassName>.self).pathForResource(<FileName>, ofType: <FileType>) 

例如,從另一個bundle你的代碼看起來像這樣得到的本地化資源阿拉伯語:

return NSBundle.init(forClass: <ClassName>.self).pathForResource("ar", ofType: "lproj") 

我覺得屬於你問題可能是您嘗試擊中另一個捆綁包,但您正在通過撥打[[NSBundle bundleForClass:[self class]]來訪問當前班級的捆綁包。

我還沒有寫很多客觀的C語言,但我懷疑你可以用我的名義來翻譯它。

相關問題