gpt4 book ai didi

swift - 在 Swift 中获取构建日期和时间

转载 作者:IT王子 更新时间:2023-10-29 05:28:42 25 4
gpt4 key购买 nike

我在 Objective-C 中使用 __DATE____TIME__ 来获取我的应用程序的构建日期和时间。我找不到在 Swift 中获取此信息的方法。可能吗?

最佳答案

您无需恢复到 Objective-C 即可获取构建日期和时间。构建应用程序时,放置在包中的 Info.plist 文件始终是从项目中的文件创建的。因此该文件的创建日期与构建日期和时间相匹配。您始终可以读取应用程序包中的文件并获取它们的属性。因此,您可以通过访问 Swift 的 Info.plist 文件属性来获取构建日期:

 var buildDate:NSDate 
{
if let infoPath = NSBundle.mainBundle().pathForResource("Info.plist", ofType: nil),
let infoAttr = try? NSFileManager.defaultManager().attributesOfItemAtPath(infoPath),
let infoDate = infoAttr["NSFileCreationDate"] as? NSDate
{ return infoDate }
return NSDate()
}

注意:这是让我在最初遇到此问题时使用桥接头的帖子。从那时起我发现了这个“Swiftier”解决方案,所以我想我会分享它以供将来引用。

[编辑] 添加了 compileDate 变量以获取最新的编译日期,即使没有进行完整构建也是如此。这仅在开发期间有意义,因为您将必须进行完整构建才能在应用商店中发布应用程序,但它可能仍有一些用处。它的工作方式相同,但使用包含实际代码的捆绑文件而不是 Info.plist 文件。

var compileDate:Date
{
let bundleName = Bundle.main.infoDictionary!["CFBundleName"] as? String ?? "Info.plist"
if let infoPath = Bundle.main.path(forResource: bundleName, ofType: nil),
let infoAttr = try? FileManager.default.attributesOfItem(atPath: infoPath),
let infoDate = infoAttr[FileAttributeKey.creationDate] as? Date
{ return infoDate }
return Date()
}

关于swift - 在 Swift 中获取构建日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com