2013-03-01 46 views
0

如何从保存的PFOBject中加载NSArray值?PFObject的NSArray值

节省:

NSMutableArray *arr = [[NSMutableArray alloc]init]; 

    for (MyParseInformation *obj in results) { 
     [arr addObject:obj.correct]; // correct is NSNumber 
    } 
    [pfobject addObject:arr forKey:@"results"]; 
} 

[pfobject saveEventually:^(BOOL succeeded, NSError *error) { 

查询:

PFQuery *query = [PFQuery queryWithClassName:className]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    if(!error){ 
     for (PFObject *obj in objects) { 

      id str = [obj valueForKey:@"results"] ; 

...... ID与计数= 1项及其内容__NSArrayM型类是:

(
     (
     1, 
     1, 
     1, 
     1, 
     1, 
     1, 
     0, 
     0, 
     0, 
     1, 
     1, 
     1, 
     0, 
     1 
    ) 
) 

回答

1

您的str对象是一个NSArray*,其中包含一个对象,该对象本身是NSArray*这大概是你想要的值。

我不熟悉PFObject,但我猜测-addObject:forKey:存储添加到与该键相关的数组中的对象。由于您只添加了一个对象,因此结果数组中只有一个值。您可能想用-setObject:forKey:代替。

0

凯文是正确的。 - [PFObject addObject:forKey:]用于将新元素插入数组键。这意味着你将一个数组插入到一个数组中。 addObject:forKey:当对象的键可能会受到竞争条件的影响时(例如,如果您在论坛对象上有评论数组),则可以确保当两个客户端竞相改变@的值时,保存所有评论”。如果我做了类似[post setObject:@[aComment] forKey:@"comments"]的事情,情况就不会如此。

你可以写你的代码为:

for (MyParseInformation *obj in results) { 
    [pfobject addObject:obj.correct]; // correct is NSNumber 
} 

但在你的情况下,它可能是一样容易更换您的ADDOBJECT:forKey:符合的setObject:forKey: