我的appDelegate中有这个,并且想知道如何将它变成一个扩展名?
extension UIViewController {
var appDelegate:AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
extension Blue {
var appDelegate:AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
extension Green {
var appDelegate:AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
...
答案 0 :(得分:2)
您只想让您的应用委托可用,这在大多数情况下都是明智的。我建议使用全局变量的便利性(在app appate class上面写这个):
let SharedAppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
答案 1 :(得分:2)
如果可以的话,你应该使用 @Mundi 的答案,但如果你想让AppDelegate
允许有限数量的结构,那么这里是版本。
您可以制定协议并将此变量添加到符合此协议的每个人:
protocol AppDelegatable {
var appDelegate: AppDelegate { get }
}
extension AppDelegatable {
var appDelegate: AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
答案 2 :(得分:1)
你总是可以这样做:
extension NSObject
{
var appDelegate:AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
如果您需要对大多数对象执行任何类型的扩展