gpt4 book ai didi

ios - 当应用程序在 App Store 上时,NSDates 的存储方式不同,但在 Xcode 中调试时可以完美运行

转载 作者:行者123 更新时间:2023-11-28 13:15:28 25 4
gpt4 key购买 nike

我制作了一个健身应用程序来跟踪锻炼情况。锻炼是一个有 NSDate 成员的类。此 NSDate 成员 (date) 用于在图表上显示进度。该应用程序通过将所有以前的锻炼提取到 [Workout] 数组中来实现这一点,然后按日期对锻炼进行排序。我之前使用的排序算法是 workouts.sort({$0.date.timeIntervalSinceNow > $1.date.timeIntervalSinceNow}) 在我的 iPhone 上使用 Xcode 运行时它运行良好。当我将应用上传到应用商店并下载时,算法对所有日期进行了倒序排序。

我之前发布这个问题的时候,一般的建议是把排序方式改成:

workouts.sort({abs($0.date.timeIntervalSince1970) > abs($1.date.timeIntervalSince1970)})我认为这行得通,但我的应用程序审核今天通过了,但没有成功 - 问题完全一样。

我的问题是:当应用程序上传到 App store 时,NSDates 的排序方式有何不同?

我从 Xcode 运行这个应用程序,它运行良好。然后我立即从应用程序商店下载了应用程序,日期都倒退了。这怎么会发生?我没有更改时区,我的手机时钟也没有更改。

最佳答案

let yesterday    = NSCalendar(calendarIdentifier: NSGregorianCalendar)!.dateWithEra(1, year: 2015, month: 03, day: 21, hour: 19, minute: 0, second: 0, nanosecond: 0)!
let today = NSCalendar(calendarIdentifier: NSGregorianCalendar)!.dateWithEra(1, year: 2015, month: 03, day: 22, hour: 19, minute: 0, second: 0, nanosecond: 0)!
let tomorrowDate = NSCalendar(calendarIdentifier: NSGregorianCalendar)!.dateWithEra(1, year: 2015, month: 03, day: 23, hour: 19, minute: 0, second: 0, nanosecond: 0)!
let daysFromNow2 = NSCalendar(calendarIdentifier: NSGregorianCalendar)!.dateWithEra(1, year: 2015, month: 03, day: 24, hour: 19, minute: 0, second: 0, nanosecond: 0)!
let daysFromNow3 = NSCalendar(calendarIdentifier: NSGregorianCalendar)!.dateWithEra(1, year: 2015, month: 03, day: 25, hour: 19, minute: 0, second: 0, nanosecond: 0)!

var myDates:[NSDate] = [tomorrowDate,daysFromNow3,today,yesterday,daysFromNow2]
var sortedArray = myDates.sorted{$0.compare($1) == NSComparisonResult.OrderedAscending}

println(sortedArray)

关于ios - 当应用程序在 App Store 上时,NSDates 的存储方式不同,但在 Xcode 中调试时可以完美运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29200488/

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