我正在使用来自Foursquare API的数据。

我想获取一份咖啡店的清单,并正确地将其取回(我正在使用RestKit)...但是一旦获得该清单,我需要过滤掉所有属于“星巴克”的咖啡店。 。

因此,现在我只知道如何进入所有咖啡店,但是在将数据提供到应用程序表视图之前,我不知道如何解析这些数据,因此不会列出星巴克咖啡店。

有什么想法可以做到吗?让我知道您是否需要发布我的任何代码片段,可能有帮助。谢谢!

编辑

API的正常响应类型为:

"venue": [{
    "name": "ABC Coffee Shop", {

因此,我需要使用“名称”并过滤掉所有名称为"Starbucks"的名称。

最佳答案

如果FourSquare不允许您将过滤器应用于请求,以过滤名称“Starbucks”,那么我将执行以下操作。

我将从将响应反序列化为JSON对象开始,在这种情况下,它将是一个字典。

NSError *error = nil;
NSDictionary *responseDict = [[NSJSONSerialization JSONObjectWithData:foursquareResponse options:0 error: &error];
NSArray *starbucks = nil;
if (!error) {
    NSArray *coffeeShops = responseDict[@"venue"];
    starbucks = [coffeeShops filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"name = 'Starbucks'"]];
} else {
    // handle the error
}

NSLog(@"Starbucks: %@", starbucks");

我没有测试此代码,但我认为它应该可以帮助您。

10-08 01:02