我创建了一个功能,可以使用UIDevice
检查iPhone是否正在充电。我应该在哪里调用该函数,以便它在整个应用程序会话中监视状态? The Function is called "connectivityStatus",目前它在viewWillAppear
。
语言:Swift 3
平台:iOS 10(使用UIDevice)
答案 0 :(得分:3)
Hari请在Appdelegate.h中定义一个函数,并在Appdelegate.m中给出函数的定义。现在您可以通过应用程序使用此功能,如[[Appdelegate appdelegate ]“您的功能名称”]。我希望这将有所帮助。将以下代码粘贴到Appdelegate.m中,以便使用 appdelegate 。
+(AppDelegate*)appDelegate
{
return (AppDelegate*)[UIApplication sharedApplication].delegate;
}
<强>迅速强>
class func appDelegate() -> AppDelegate {
return (UIApplication.sharedApplication().delegate as! AppDelegate)
}
答案 1 :(得分:2)
或者您可以使用Timer()
:
// in viewDidAppear()
connectivityStatus()
var timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(YourClassName.function) , userInfo: nil, repeats: true)
//outside viewDidAppear()
func function(){
connectivityStatus()
}
每2秒检查一次状态!希望这有帮助!
如果您决定更频繁地更新它,可以将值从timeInterval:
更改为较小的值,但请注意,如果正在进行大量进程,您的应用可能会变慢!
答案 2 :(得分:0)
如果您想在整个应用程序生命周期中监控它,请在 AppDelegate.swift
中的以下方法中进行func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
答案 3 :(得分:0)
您可以管理类似的内容,
在appdelegate
,
func connectivityStatus() -> Bool {
// define your method body here. I assume return type as bool. you can customize as per your need
return true // or false as per your requirement
}
现在在你想要调用此函数的任何视图控制器中,你可以这样做,
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.connectivityStatus() // it will return bool as per your defination in method in appdelegate