9

我正在阅读一些关于如何构建简单应用程序的 Swift 教程,因为我刚刚开始编写代码。我想让我的应用程序与 iOS 9 兼容,因为我有一个 iPad 3。但是,所有os.log语句都会在 Xcode 中生成一个错误,告诉我if #avaliable在任何语句之前添加一个os.log语句。os.log 有什么作用,如果我需要它,使用if #avaliableiOS 9 兼容性声明是否存在问题?如果不是,iOS 9 在else语句之后的if #avaliable语句中的等效代码是什么?谢谢。

4

1 回答 1

8

来自苹果的文档

统一日志记录在 iOS 10.0 及更高版本、macOS 10.12 及更高版本、tvOS 10.0 及更高版本以及 watchOS 3.0 及更高版本中可用,并取代 ASL(Apple System Logger)和 Syslog API。从历史上看,日志消息被写入磁盘上的特定位置,例如 /etc/system.log。统一日志系统将消息存储在内存和数据存储中,而不是写入基于文本的日志文件。

没有 iOS9 等价物。您可以使用第三方日志记录工具,例如非常流行的 CocoaLumberjack 。

作为如何使用此日志记录的具体示例:

if #available(iOS 10.0, *) {
    let bundleID:String = Bundle.main.bundleIdentifier ?? "unknown"
    let oslog = OSLog(subsystem: bundleID, category: "Model")
    os_log("%@", log: oslog, type: .info, message)
}
于 2017-06-01T19:36:37.613 回答