SGAPI 1.4.0

SGAPI 1.4.0

测试已测试
语言语言 Obj-CObjective C
许可证 BSD-2-Clause
发布日期上次发布2018年9月

James VanasMatt BaronEd Paulosky 维护。



SGAPI 1.4.0

  • SeatGeek

SGAPI

SGAPI 是一个 iOS SDK,用于查询 SeatGeek 平台 API,它是美国和加拿大现场活动的综合目录。

CocoaPods 设置

pod 'SGAPI'

示例用法

SGAPI 提供了模型类 SGEventSGPerformerSGVenue 以及用于分页获取的项目集合类 SGEventSetSGPerformerSetSGVenueSet

#import <SGAPI/SGAPI>

获取活动

创建 SGEventSet 实例以获取分页 SGEvent 结果。有关可用的查询参数,请参阅 SeatGeek 平台文档

// find all 'new york mets' events
SGEventSet *events = SGEventSet.eventsSet;
events.query.search = @"new york mets";
events.query.perPage = 30;

在成功加载页面时调用的 onPageLoaded 块属性。请求失败时调用的 onPageLoadFailed 块属性。

events.onPageLoaded = ^(NSOrderedSet *results) {
    for (SGEvent *event in results) {
        NSLog(@"event: %@", event.title);
    }
};

events.onPageLoadFailed = ^(NSError *error) {
    NSLog(@"error: %@", error);
};
[events fetchNextPage];

获取表演者

创建 SGPerformarSet 实例以获取分页的 SGPerformar 结果。请参阅 [SeatGeek 平台文档](http://platform.seatgeek.com/#performers) 以了解可用的查询参数。

// find all performers matching 'imagine dragons'
SGPerformerSet *performers = SGPerformerSet.performersSet;
performers.query.search = @"imagine dragons";
performers.onPageLoaded = ^(NSOrderedSet *results) {
    if (results.count) {
        SGPerformer *performer = results[0];
        NSLog(@"performer: %@", performer.name);
    }
};
[performers fetchNextPage];

获取场馆

创建 SGVenueSet 实例以获取分页的 SGVenue 对象。请参阅 [SeatGeek 平台文档](http://platform.seatgeek.com/#venues) 以了解可用的查询参数。

// find all venues matching 'new york' 
SGVenueSet *venues = SGVenueSet.venuesSet;
venues.query.search = @"new york";
venues.onPageLoaded = ^(NSOrderedSet *results) {
    for (SGVenue *venue in results) {
        NSLog(@"venue: %@", venue.name);
    }
};
[performers fetchNextPage];

熟悉的项目集属性

项目集(SGEventSetSGPerformarSetSGVenueSet)支持下标访问和通用集合属性。

// count, firstObject, and lastObject
if (events.count) {
    NSLog(@"first event: %@", [events.firstObject title]);
    NSLog(@"last event: %@", [events.lastObject title]);
}

// subscripting
if (events.count >= 3) {
    NSLog(@"third event: %@", [events[2] title]);
}

// iterate over an NSArray of SGEvents in the set
for (SGEvent *event in events.array) {
    NSLog(@"event: %@", event.title);
}

// iterate over an NSOrderedSet of SGEvents in the set
for (SGEvent *event in events.orderedSet) {
    NSLog(@"event: %@", event.title);
}

SGQuery

您可以修改每个集合的 query 以更改默认值和过滤器。

events.query.perPage = 100;
events.query.location = CLLocationCoordinate2DMake(40.752, -73.972) // New York City 
events.query.range = @"200mi" // 200 mile search range

如果您希望使用自己的网络获取代码,您可以为 URL 构造构建独立的 SGQuery 实例。

SGQuery *query = SGQuery.eventsQuery;
[query addFilter:@"taxonomies.name" value:@"sports"];
query.search = @"new york";

NSLog(@"%@", query.URL);
// http://api.seatgeek.com/2/events?q=new+york&taxonomies.name=sports