SGAPI
SGAPI 是一个 iOS SDK,用于查询 SeatGeek 平台 API,它是美国和加拿大现场活动的综合目录。
CocoaPods 设置
pod 'SGAPI'
示例用法
SGAPI
提供了模型类 SGEvent
、SGPerformer
、SGVenue
以及用于分页获取的项目集合类 SGEventSet
、SGPerformerSet
、SGVenueSet
。
#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];
熟悉的项目集属性
项目集(SGEventSet
,SGPerformarSet
,SGVenueSet
)支持下标访问和通用集合属性。
// 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