我正在编写一个基本报价应用程序,我想添加一个"每日报价"。我有一个带引号/作者的NSObject,还有一个随机化引号的函数。
let range: UInt32 = UInt32(quotes.count) //my array is called quotes
let randomNumber = Int(arc4random_uniform(range))
let quote = quotes[randomNumber]
let quoteString = quote.quote
let authorString = quote.person
self.quoteLabel.text = quoteString
self.personLabel.text = authorString
如何创建一个仅每天更改报价的功能(午夜/ 00:00?)
我一直在尝试使用NSDate和NSTimer,但了解这些将在应用关闭时取消。我也一直在尝试实现此代码Update Every Day in swift syntax - 但没有任何结果。
如何在午夜每天更改报价并全天保留?
我是编程新手,非常感谢代码的详细解答,我只编写了几个月的代码 - 谢谢!
答案 0 :(得分:0)
这样的事可能吗?对不起,这是objc)
- (void)checkDateAndSwitchLabel
{
//get previous Cached data when label refreshed
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger cachedDay = [defaults integerForKey:@"appDate"];
NSInteger cachedHour = [defaults integerForKey:@"appDateHour"];
//get current data
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitHour fromDate:[NSDate date]];
NSInteger currentDay = [components day];
NSInteger currentHour = [components hour];
//compare
if (cachedDay - currentDay >= 1 || cachedHour > currentHour) {
//change Label
}
//save new values
[defaults setInteger:currentDay forKey:@"appDateDay"];
[defaults setInteger:currentHour forKey:@"appDateHour"];
[defaults synchronize];
}