SuperDelegate 0.9.0

SuperDelegate 0.9.0

测试已测试
Lang语言 SwiftSwift
许可证 Apache 2
发布上次发布2016年9月
SPM支持 SPM

Dan FedermanDan FedermanDimitris Koutsogiorgas 维护。



  • Square

SuperDelegate

SuperDelegate 在所有 iOS SDKs 上提供了一个一致的 App Delegate API,同时保护您免受应用程序生命周期中的错误。

目的

整合关于 UIApplicationDelegate API 合约中特性的本地知识和工作方案。

例如:在 iOS 8.4 中,在 application(_:handleWatchKitExtensionRequest:reply:) 被调用之前,会调用 application(_:didFinishLaunchingWithOptions:);但在 iOS 8.0-8.3 中并非如此。SuperDelegate 保护您免受此类 API 合约更改。

创建一个符合您需求的干净的 UIApplicationDelegate API。

例如:在 application(_:didFinishLaunchingWithOptions:)application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 将告诉您何时收到推送通知(有时它们会告诉您两次!),但它们无法区分由于用户点击通知而导致的发送还是由于在 APNS 字典中将 content-available=1 标志设置为导致的发送。SuperDelegate 的设计是为了在您需要时为您提供所需的信息。

安装

Swift 包管理器

要使用Swift 包管理器在您的 iOS 项目中安装 SuperDelegate,可以将以下定义添加到 Project 的依赖项中

  .Package(
    url: "https://github.com/square/SuperDelegate.git",
    versions: Version(0,8,0)..<Version(0,9,0)
  ),

子模块

要使用 git 子模块,使用以下命令检出子模块:git submodule add [email protected]:Square/SuperDelegate.git,将 SuperDelegate.xcodeproj 拖到您的项目中,并将 SuperDelegate 添加为构建依赖项。

入门

public class AppDelegate: SuperDelegate, ApplicationLaunched

让您的 UIApplicationDelegate 继承自 SuperDelegate 并符合 ApplicationLaunched 协议。SuperDelegate 保证 setupApplication() 只在每次应用启动前被调用一次,在调用任何其他代理调用之前。SuperDelegate 还保证在您的应用程序在启动后被带到前台时,将只调用一次 loadInterfaceWithLaunchItem(_:)

采用更多 AppDelegate 功能

要启用更多的AppDelegate功能,请使您的AppDelegate类符合相应的协议。例如,使您的AppDelegate类符合LocalNotificationCapable将使您的应用程序具备发布本地通知的功能。

要求

  • Xcode 7.0或更高版本。
  • iOS 8或更高版本。

版本

  • 0.8.* – Swift 2.3和Xcode 7.3+。这个版本已经过彻底审查。
  • 0.9.* – Swift 3.0和Xcode 8+。
  • 1.0 – Swift 3.0,Xcode 8+和iOS 10 SDK支持。

贡献

我们对您对SuperDelegate感兴趣感到高兴,并期待看到您如何改进它。在提交拉取请求之前,请阅读我们的贡献指南

谢谢,祝您分配任务愉快!