我应该把功能放在哪里?

Where should i put the function?

我创建了一个函数,使用 UIDevice 检查 iPhone 是否正在充电。我应该在哪里调用该函数,以便它在整个应用程序会话期间监视状态? The Function is called "connectivityStatus",目前在viewWillAppear.

语言:Swift 3
平台:iOS 10(使用 UIDevice)

Hari 请在Appdelegate.h 中定义一个函数,并在Appdelegate.m 中给出函数的定义。现在您可以像这样 [[Appdelegate appdelegate] "Name of your function"] 通过应用程序使用此功能。我希望这将有所帮助。将以下代码粘贴到 Appdelegate.m 中以使用 appdelegate .

+(AppDelegate*)appDelegate
{
    return (AppDelegate*)[UIApplication sharedApplication].delegate;
}

swift

class func appDelegate() -> AppDelegate {
return (UIApplication.sharedApplication().delegate as! AppDelegate)
 }

如果您想在整个应用程序生命周期中对其进行监控,请按照 AppDelegate.swift

中的以下方法进行
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    return true
}

或者您可以使用 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: 更改为较小的值,但请注意,如果正在进行大量进程,您的应用程序可能会变慢!

您可以管理类似的东西,

在你的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
}

现在,无论viewcontroller你想调用这个函数,你都可以这样做,

  let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate


 appDelegate.connectivityStatus() // it will return bool as per your defination in method in appdelegate