0

JSONクエリから10,000レコードが返され、102ページに分割され、1ページあたり約100個のオブジェクトが返されます。最初の100個のアイテムは正常にロードされますが、それ以降はロードが停止します。次のページに移動するにはどうすればよいですか?これは通常どのように行われますか?このコードは、以前はsqlite専用でした。これで、コアデータを使用して新しいアプリへの変換が完了しましたが、最初のページでスタックします。私が間違っていることはありますか?

これがJSONnslogです(最後の行)

"PageNo":1,"TotalPages":102,"RecordCount":10163}




    -(void) serverDidFinishSending: (NSData *)responseData manager:(WebServiceCommunicator*)aManger requestURL:(NSURL *) url
        {
//Added the code below just to test out apple's JSON serializer
            NSError *error;
            NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
            NSLog(@"dictionary %@",dictionary);
            // Create the base object from factory.

//currently JSON serializer happens here 
    ReturnObjectFactory *aFactory = [[[ReturnObjectFactory alloc] init] autorelease];
        id object = [aFactory createObjectWithClassName:_className fromData:responseData];

        // Pass on the object to the target class and let that class deal with this object
        if(_target && [_target respondsToSelector:@selector(didRecieveObject:sender:)])
           [_target didRecieveObject:object sender:self];

ありがとう!

4

1 に答える 1

1

辞書の配列を取得していると思うので、クエリを実行すると、配列の最初のインデックスのみが取得されます。したがって、ループを作成してすべてのデータを取得してみてください。

以下のコードを試してください。

-(void) serverDidFinishSending: (NSData *)responseData manager:(WebServiceCommunicator*)aManger requestURL:(NSURL *) url
{
NSError *error;
id jsonObject = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:&error];
NSLog(@"dictionary %@",jsonObject);

if ([jsonObject respondsToSelector:@selector(objectForKey:)])
     {
// This is a dictionary
// Create the base object from factory.
ReturnObjectFactory *aFactory = [[[ReturnObjectFactory alloc] init] autorelease];
// get your stuffs here
    }
else
    {
    // Treat as a Array
    }

}
于 2013-01-05T05:32:41.017 に答える