IOS-笔记17(NSNotificaton,Application Lifecycle,UIApplication)

来源:互联网 发布:北京康知门诊部 编辑:程序博客网 时间:2024/09/21 09:22

NSNotification

       这和安卓中的广播很类似,我这个广播发出去,有好多人注册监听。

       当你想接受一个广播时,首先得到通知中心:

       var note = NSNotificationCenter.defaultCenter()

        然后注册监听:

       note.addObserverForName(name: String?, //radio station的名字                               object: AnyObject?, //你要监听这个广播站谁的广播,如果放nil则全部监听                               queue: NSOperationQueue?) //你要哪个队列来处理接下来的闭包,nil会是主队列?or当前队列?                               { (NSNotification!) -> Void in //收到广播,闭包就会被执行                                    //code这里比较重要的一个属性就是userInfo,这一般是一个字典,不同的广播站有不同的字典                               }

       当你想发送广播时:

        let center = NSNotificationCenter.defaultCenter()        let notification = NSNotification(name: GPXURL.Notification, object: self, userInfo: [GPXURL.Key : url])        center.postNotification(notification)

       注销一个广播监听时:定义一个变量等于注册监听的那个语句,那个函数会返回一段类似cookie的东西,在注销时调用下面的函数并将cookie传人即可:

        NSNotificationCenter.defaultCenter().removeObserver()

Application Lifecycle

       当你进入background时,你的代码还会执行一小段时间,然后进入挂起状态。如果你需要获取数据,你可以向系统请求隔一会进入后台状态。在挂起状态下可能会被杀死。在进入后台后你可以请求多给一点时间,有这么一个方法。


     在这些状态切换的过程中,你会收到相应的广播,在AppDelegate文件中,你将收到对应的方法。

UIApplication

     这个类每个应用程序只有一个,你不需要继承这个类。你可以在其他地方通过这个方法得到它本身:

     let appDelegate = UIApplication.sharedApplication().delegate

      6这个类里有很多有用的方法。 比如设置打开URL,设置在挂起状态时时多久唤醒一次,申请更多在后台阶段停留的时间。在申请时要注意,结束任务后要调用结束方法,否则系统会杀死你。

Info.plist

      可编辑的一些项目设置,其实是Xml格式。capability:这里配置了一些你的应用程序的访问权限,比如iCloud等。 在你需要应用识别一些外部文件格式时可以通过编辑这个文件的方式来修改。具体参照项目Trax。

0 0