2014-12-02 52 views
0

我需要從Parse.com,通過他們的REST API以及使用AFNetworking檢索多個用戶。我需要使用一個API調用來檢索這些用戶。通過REST API從Parse中檢索多個用戶並僅使用一個AFNetworking請求

以下代碼可以獲取一個用戶。您會注意到我包含一個objectId,因爲我只提取一個用戶。我需要修改這個代碼,以便我可以調用多個objectId's,因此,檢索多個用戶:

//Setup request manager 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

[manager.requestSerializer setValue:ApplicationId forHTTPHeaderField:@"X-Parse-Application-Id"]; 
[manager.requestSerializer setValue:APIKey forHTTPHeaderField:@"X-Parse-REST-API-Key"]; 
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 

NSDictionary *query = @{@"objectId":@"cbfG5dFJy7"}; 
NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:query 
                options:0 
                error:&error]; 
if (!jsonData) { 
    NSLog(@"Error: %@", [error localizedDescription]); 
} 
NSString *dateQueryString = [[NSString alloc] initWithData:jsonData 
                encoding:NSUTF8StringEncoding]; 
NSDictionary *parameters = @{@"where": dateQueryString}; 

//Perform request 
[manager GET:[NSString stringWithFormat:@"%@users", BaseURLString] parameters:parameters 
    success:^(AFHTTPRequestOperation *operation, id responseObject) { 

     // Handle success 
     completion(nil, self.mentors, nil); 

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     // Handle failure 
     completion(nil, nil, error); 
    }]; 

Parse.com REST API documentation,它說,你可以執行compound or query實現這一目標,並列出了在GET請求curl示例如下:

--data-urlencode 'where={"$or":[{"wins":{"$gt":150}},{"wins":{"$lt":5}}]}' \ 

不幸的是,我不知道如何將它翻譯成objective-c。下面是同樣的例子只是在蟒蛇是否有幫助:

params = urllib.urlencode({"where":json.dumps({ 
     "$or": [ 
     { 
      "wins": { 
      "$gt": 150 
      } 
     }, 
     { 
      "wins": { 
      "$lt": 5 
      } 
     } 
     ] 
    })}) 

我只需要在我的AFNetworking調用多個objectId's,並告訴Parse.com,我會接受的結果這個objectId,或objectId等。這樣Parse.com會將所有這些用戶都歸還給我。

回答

2

您目前有一個單一的字典查詢,你轉換成JSON

NSDictionary *query = @{@"objectId":@"cbfG5dFJy7"}; 

您展示或例子是一個鍵,其中值是字典喜歡你的當前查詢的數組字典。

@{@"$or":@[ @{@"objectId":@""} , @{@"objectId":@""} ]} 

一旦你建立了這個結構,你可以將它轉換爲JSON並將它添加到請求中,就像你現在一樣。

+2

感謝您的幫助。我只會補充一點,就是你需要在數組裏面的每個字典前加「@」,以使它成爲真正的Objective-C,它將被編譯。 – user3344977 2014-12-03 02:58:17

相關問題