0
我有用於定製Swift - 如何覆蓋初始化函數? (在目標C的類別)
UIStoryboard's '+ (UIStoryboard *)storyboardWithName:(NSString *)name'.
它被用來確定哪一個故事板文件與多個設備處理時調用一個Objective-C的類別。現在我需要將它改爲Swift。
看起來我需要創建一個「Swift Extension」,但是我在解決它的問題時遇到了問題。
以下是我有:
extension UIStoryboard {
convenience init(name: String, storyboardBundleOrNil: NSBundle?)
{
var storyboard: UIStoryboard?
var storyboardName: String?
// Don't adjust name if it's universal storyboard (Xcode 6, iOS 8)
storyboardName = name;
if (name.rangeOfString("_Universal") == nil)
{
if (UIDevice.currentDevice().userInterfaceIdiom == .Pad)
{
storyboardName = storyboardName!+"_iPad"
}
else
{
storyboardName = storyboardName!+"_iPhone"
}
}
// storyboard = UIStoryboard(name: storyboardName!, storyboardBundleOrNil: storyboardBundleOrNil!)
assert(storyboard != nil, "Storyboard %@ not found!")
//return storyboard!;
self.init(name: storyboardName!, storyboardBundleOrNil: storyboardBundleOrNil!)
}
}
代碼和錯誤消息請 – 2014-10-30 22:11:29
更新。沒有錯誤消息,應用程序運行,但是這段代碼從未在我的編程調用中執行。 – JimmyJammed 2014-10-30 22:25:18