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