2013-08-25 19 views
11

Tôi là một nhà phát triển Android có kinh nghiệm đang cố gắng tải mẫu ứng dụng iOS chạy bằng dịch vụ Parse và sdk (https://www.parse.com/).Không thể truy xuất updatedAt hoặc tạo các giá trị At từ các đối tượng Parse

Thật tuyệt vời và tôi có thể nhận tất cả các đối tượng và giá trị của chúng mà không gặp khó khăn, mọi thứ đều hoạt động tốt.

Tuy nhiên, tôi không thể nhận giá trị được cập nhật tự động do Parse tạo cho từng đối tượng.
Đó là điều bắt buộc đối với tôi và tôi không muốn lưu dấu thời gian có điều kiện dưới dạng Chuỗi khi dữ liệu đang ngồi ngay tại đó.

Đây là ý chính của những gì tôi đang làm.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
} 

// this works fine 
cell.textLabel.text = [object objectForKey:@"name"]; 

//substring however does not 
NSDate *updated = [object objectForKey:@"updatedAt"]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EEE, MMM d, h:mm a"]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [dateFormat stringFromDate:update]]; 

//i also tried like this at first 
cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [object objectForKey:@"updatedAt"]]; 

return cell; 

}

+0

Bạn thấy gì trong cửa sổ trình gỡ lỗi nếu bạn làm NSLog (@ "date% @", được cập nhật); sau NSDate * updated = [object objectForKey: @ "updatedAt"]; – Yan

+0

bạn đã thử [object stringForKey: @ "updateAt"] chưa? –

Trả lời

50

Silly Matt. Tôi nghĩ về điều này trong một ngày sau đó nhận ra sai lầm của tôi phút sau khi tôi đăng nó.

updatedAt là thuộc tính trên tất cả PFObjects, không cần truy xuất nó bằng khóa.

Cho một đối tượng tên là PFObject ...

NSDate *updated = [object updatedAt]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EEE, MMM d, h:mm a"]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [dateFormat stringFromDate:updated]]; 

Working Date String

@Parse, đỉnh của mũ

+0

Cảm ơn bạn đời, tôi đã có cùng một vấn đề. – Ricardo

+0

Lol, tôi đã gãi đầu trong một thời gian rất dài. Đây là một trợ giúp lớn. Cảm ơn rất nhiều. Đã đánh dấu. – LondonGuy

+0

Đây là một trợ giúp lớn. Nó đã khiến tôi bị mắc kẹt trong một thời gian dài. –

15

Đối Swift:

let dateUpdated = object.updatedAt! as NSDate 
let dateFormat = NSDateFormatter() 
dateFormat.dateFormat = "EEE, MMM d, h:mm a" 
cell.updatedAtLabel.text = NSString(format: "%@", dateFormat.stringFromDate(dateUpdated)) 
2

Tôi chỉ có cùng một vấn đề, không truy cập nó bằng cách sử dụng objectForKey, chỉ cần truy cập trực tiếp thông qua thuộc tính createdAt.

trong Swift

object.createdAt

Như đã nêu trong các tài liệu, các phím:

này không bao gồm createdAt, updatedAt, authData, hoặc ObjectId. Nó không bao gồm những thứ như tên người dùng và ACL.