0

保存された 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 は__NSArrayMcount=1 の型クラスで、その内容は次のとおりです。

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

2 に答える 2

1

あなたのstrオブジェクトは、おそらくあなたが望む値でNSArray*ある1つのオブジェクトを含むです。NSArray*

私はよく知りませんが、キーに関連付けられた配列に追加されたオブジェクトを格納するPFObjectと推測します。-addObject:forKey:オブジェクトを 1 つだけ追加したため、結果の配列には値が 1 つしかありません。-setObject:forKey:おそらく代わりに使用したかったでしょう。

于 2013-03-01T22:40:47.430 に答える
0

ケビンは正しいです。-[PFObject addObject:forKey:]は、配列キーに新しい要素を挿入するために使用されます。これは、配列を配列に挿入したことを意味します。addObject:forKey:は、そのオブジェクトのキーが競合状態の影響を受ける可能性がある場合に役立ちます。つまり、フォーラムオブジェクトにコメント配列がある[post addObject:aComment forKey:@"comments"]場合、2人のクライアントが@"comments"の値を変更するために競合しているときにすべてのコメントが保存されるようにします。 。私がのようなことをした場合、これは当てはまりません[post setObject:@[aComment] forKey:@"comments"]

次のようにコードを記述できます。

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

ただし、あなたの場合、addObject:forKey:行をsetObject:forKey:に置き換えるのも同じくらい簡単かもしれません。

于 2013-03-04T00:08:33.170 に答える