根据日期从NSUserDefaults检索不同的项目

时间:2014-04-18 07:05:14

标签: objective-c

目前我有这段代码:

NSArray *lessons = [[NSUserDefaults standardUserDefaults] objectForKey:@"TuesdayLessons"];

NSString *s1 = [lessons objectAtIndex:0];
self.lesson1.text = s1;

NSString *s2 = [lessons objectAtIndex:1];
self.lesson2.text = s2;

NSString *s3 = [lessons objectAtIndex:2];
self.lesson3.text = s3;

NSString *s4 = [lessons objectAtIndex:3];
self.lesson4.text = s4;

NSString *s5 = [lessons objectAtIndex:4];
self.lesson5.text = s5;

NSString *s6 = [lessons objectAtIndex:5];
self.lesson6.text = s6;

这会抓取数组中的对象并将其放入视图控制器上的标签中。这需要根据它的日期来完成。例如,如果当天是星期二,则objectForKey将保持原样(objectForKey:@"TuesdayLessons")。但如果这一天是星期三,我会想要

[[NSUserDefaults standardUserDefaults] objectForKey:@"WednesdayLessons"]

我需要让我的应用程序检查它的当天,并在objectForKey:电话中使用这一天。

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式获取当天的名称:

NSDate *now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE"];
NSString *today = [df stringFromDate:now];

然后会返回类似"星期一和#34;或"星期二"。然后你可以这样做:

NSString *key = [NSString stringWithFormat:@"%@Lessons", today];

这将返回例如" MondayLessons",您可以使用它来检索数组:

[[NSUserDefaults standardUserDefaults] objectForKey:key];

一个建议:最好使用当天的数字(例如,0 =星期日,1 =星期一等等),因为当然,如果用户使用不同语言的日名称不同决定更改设备的语言。