0

パースとの取引が何であるかはわかりませんが、何らかの理由で、取得した配列を作成した可変配列に保存することはできません。解析コード ブロックの内部では機能しますが、外部では null が表示されます。助けてください?

 PFQuery *query = [PFQuery queryWithClassName:@"comments"];
    [query whereKey:@"flirtID" equalTo:recipe.flirtID];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error) {


            comments = [[NSMutableArray alloc]initWithArray:objects];

            // Do something with the found objects
            for (PFObject *object in objects) {

            }
        } else {
            // Log details of the failure
            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
    }];
    NSLog(@"%@",[comments objectAtIndex:0]);
4

1 に答える 1

1

実際には正常に機能しています。ブロックがどのように機能するかをよく読んでください。

編集:Appleのドキュメントを読んでみてください

コメントが実際に設定される前に、「コメント」を NSLogging しています。それはどのように機能しますか?ご覧のとおり、クエリはバックグラウンドで実行されており、実際には少し時間がかかります。非同期で実行されています。ただし、ブロック外のコードはすぐに実行されます。

コードが前に来ますが、これは非同期ブロックであるため、いつでも実行できます。

これを試して:

comments = [[NSMutableArray alloc]initWithArray:objects];
NSLog(@"%@",[comments objectAtIndex:0]);

重要な質問は、クエリの後に何をしたいですか? コメントを保存したいようですが、その後はどうでしょうか。それによって次に何をするかが決まります。

于 2014-08-18T04:31:59.590 に答える