我试图从日期选择器中获取值,将其转换为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"];
}
答案 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"];