我正在尝试将NSDate
保存到Parse中Date
类型的列中,但是以下错误告诉我我的值是nil:
'Can't use nil for keys or values on PFObject. Use NSNull for values.'
这就是我设置Date对象的方式:
NSDate *date = [self convertToNSDate:dateField.text];
[newPet setObject:date forKey:@"age"];
//I also try to save object
这是我的convertToNSDate
方法,它转换格式为“MM / YYYY”的字符串并返回NSDate:
-(NSDate *) convertToNSDate:(NSString *)dateString{
NSString *mmyyyy = [dateString stringByReplacingOccurrencesOfString:@"/" withString:@""];
NSString *yyyymm = [NSString stringWithFormat:@"%@%@", [mmyyyy substringFromIndex: MAX([mmyyyy length] - 4, 0)], [mmyyyy substringToIndex:2]];
NSString *dateStr = [NSString stringWithFormat:@"%@00", yyyymm];
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];
return date;
}
格式有问题吗? Parse只接受特定格式吗? 谢谢你的帮助。
答案 0 :(得分:0)
我发现我的错误是使用dd
格式而不是01来格式化字符串为00.我将代码更改为以下内容:
-(NSDate *) convertToNSDate:(NSString *)dateField{
NSString *str = dateField;
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MM/yyyy"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
NSDate *date = [formatter dateFromString:str];
NSLog(@"%@",date);
return date;
}
现在记录日期,该日期以前为空。谢谢你的帮助。