将NSDate保存到Parse

时间:2015-10-14 19:04:22

标签: ios objective-c parse-platform nsdate

我正在尝试将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只接受特定格式吗? 谢谢你的帮助。

1 个答案:

答案 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;
}

现在记录日期,该日期以前为空。谢谢你的帮助。