将NSMutableArray保存到Parse Object Array

时间:2015-05-23 14:00:45

标签: ios objective-c parse-platform

我正在尝试将NSMutableArray保存到与Parse User表上当前登录用户关联的数组,但我的数组未保存。我做错了什么?

此方法在viewDidLoad()

中调用
- (void)getSavedLocations {
    if ([[PFUser currentUser]objectForKey:@"Latitude"] == NULL) {
        self.latitudeArray = [[NSMutableArray alloc]init];
        self.longitudeArray = [[NSMutableArray alloc]init];
    }
    else {
        self.latitudeArray = [[PFUser currentUser]objectForKey:@"Latitude"];
        self.longitudeArray = [[PFUser currentUser]objectForKey:@"Longitude"];
    }
}

此方法是将对象添加到我的数组中,但Parse数组不会使用新数据进行更新。

- (IBAction)saveLocationPressed:(id)sender {
    NSString *latString = [NSString stringWithFormat:@"%f", self.myLatitude];
    NSString *longString = [NSString stringWithFormat:@"%f", self.myLongitude];

    [self.latitudeArray addObject:latString];
    [self.longitudeArray addObject:longString];

    [[PFUser currentUser]setObject:self.latitudeArray forKey:@"Latitude"];
    [[PFUser currentUser]setObject:self.longitudeArray forKey:@"Longitude"];
}

2 个答案:

答案 0 :(得分:1)

我明白了。我不得不添加[[PFUser currentUser]saveInBackground];

答案 1 :(得分:0)

首先检查saveLocationPressed方法中self.latitudeArray是否为NULL: 如果你先保存,那么get,你self.latitudeArray可能是NULL。 建议你懒得加载数组

@property (nonatomic, strong) NSMutableArray *latitudeArray;
/**
 *  lazy load _latitudeArray
 *
 *  @return NSMutableArray
 */
- (NSMutableArray *)latitudeArray
{
    if (_latitudeArray == nil) {
        _latitudeArray = [[NSMutableArray alloc] init];
    }
    return _latitudeArray;
}