2015-05-23 47 views
0

我試圖將一個NSMutableArray保存到與我當前登錄的用戶關聯的數組上,但我的數組未保存。我究竟做錯了什麼?將NSMutableArray保存爲解析對象數組

這種方法被稱爲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"]; 
    } 
} 

這種方法增加了對象數組我,但解析陣列沒有得到新的數據更新。

- (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"]; 
} 

回答

0

如果self.latitudeArray爲NULL的方法首先檢查saveLocationPressed:, 如果你先保存,然後讓你self.latitudeArray可以爲NULL。 建議你懶加載陣列像

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

我在嘗試爲當前用戶設置它之前對其進行了記錄,它不爲空。 – raginggoat

1

我想通了。我不得不添加[[PFUser currentUser]saveInBackground];

+0

你能告訴我們關於你的代碼有什麼問題的一些細節嗎?你能給出正確的代碼嗎? – ElonChan

+0

除了我需要添加saveInBackground – raginggoat

+0

YES以外沒有任何錯誤您必須添加SaveInBackground函數 – Kingofmit