使用timepicker设置NSUserDefault时间戳

时间:2016-03-04 16:44:34

标签: objective-c nsuserdefaults uidatepicker

我试图从日期选择器中获取值,将其转换为timeStamp,然后使用timestamp值设置NSUserDefaults。但是我收到了多条错误消息。

  

1:ARC不允许对id_Nullable进行time_t(aka long)的隐式对话

     

2:不兼容的整数到指针会话发送time_t(又名长)到_id类型的参数Nullable不允许使用ARC

- (IBAction)createActivityButtonPressed:(id)sender {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    time_t dateStart = (time_t) [self.datePicker.date timeIntervalSince1970];
    [defaults setObject:dateStart forKey:@"TimeStartString"];
}

1 个答案:

答案 0 :(得分:3)

setObject:的{​​p> NSUserDefaults需要一个对象(指针),而不是像time_t这样的标量类型。

为什么不直接保存NSTimeInterval又名double

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSTimeInterval dateStart = [self.datePicker.date timeIntervalSince1970];
[defaults setDouble:dateStart forKey:@"TimeStartString"];

或 - 正如rmaddy在评论中指出的那样 - 更简单

[[NSUserDefaults standardUserDefaults] setObject:self.datePicker.date forKey:@"TimeStartDate"];