我需要從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
會將所有這些用戶都歸還給我。
感謝您的幫助。我只會補充一點,就是你需要在數組裏面的每個字典前加「@」,以使它成爲真正的Objective-C,它將被編譯。 – user3344977 2014-12-03 02:58:17