帮酷LOGO
  • 显示原文与译文双语对照的内容

  • 源代码名称:PluggableApplicationDelegate
  • 源代码网址:http://www.github.com/fmo91/PluggableApplicationDelegate
  • PluggableApplicationDelegate源代码文档
  • PluggableApplicationDelegate源代码下载
  • Git URL:
    git://www.github.com/fmo91/PluggableApplicationDelegate.git
  • Git Clone代码到本地:
    git clone http://www.github.com/fmo91/PluggableApplicationDelegate
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/fmo91/PluggableApplicationDelegate
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • PluggableApplicationDelegate

    CI StatusVersionLicensePlatform

    简介

    AppDelegate 是一个传统的错误代码示例。 在应用程序生命周期中调用的方法中将许多不同的代码组合在一起。 但所有这些问题都过去了。 使用 PluggableApplicationDelegate 可以将AppDelegate与你插入到它的服务分离。 每个 ApplicationService 都有自己的生命周期,与 AppDelegate 共享。

    一眼

    看看代码。下面是 ApplicationService的原理:

    importFoundationimportPluggableApplicationDelegatefinalclassLoggerApplicationService: NSObject, ApplicationService {
     funcapplication(_application: UIApplication, didFinishLaunchingWithOptionslaunchOptions: [UIApplicationLaunchOptionsKey : Any]?=nil) ->Bool {
     print("It has started!")
     returntrue }
     funcapplicationDidEnterBackground(_application: UIApplication) {
     print("It has entered background")
     }
    }

    就是这样,这跟一样。 把 ApplicationService 当作子 appdelegates 。

    AppDelegate 中,你只需要从PluggableApplicationDelegate继承到 register 。

    importUIKitimportPluggableApplicationDelegate@UIApplicationMainclassAppDelegate: PluggableApplicationDelegate {
     overridevar services: [ApplicationService] {
     return [
     LoggerApplicationService()
     ]
     }
    }

    是的就是这样简单。

    :这是如何工作的

    你可能想阅读我的媒体帖子关于插头 App Delegate 。 基本上你要反转控制。 在生命周期的每个步骤中,执行操作并将它们插入到你的AppDelegate中,而不是让它们实例化依赖项,而是在它的生命周期的每一。 这些对象是AppDelegate的观察者。 你的AppDelegate只负责通知他们有关它的生命周期事件的信息。

    示例

    要运行示例项目,克隆 repo,然后从示例目录中运行 pod install

    要求

    PluggableApplicationDelegate需要快速 3.0或者更高版本。

    安装

    PluggableApplicationDelegate可以通过 CocoaPods 获得。 要安装它,只需在你的Podfile中添加以下行:

    pod 'PluggableApplicationDelegate'

    作者

    fmo91,ortizfernandomartin@gmail.com

    许可证

    PluggableApplicationDelegate在MIT许可证下可用。 有关详细信息,请参阅许可证文件。




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语