douban-objc-client Objective C 实现的 豆瓣 API 客户端开源项目

我要开发同款
匿名用户2012年02月28日
97阅读

技术信息

开源地址
https://github.com/douban/douban-objc-client
授权协议
BSD

作品详情

douba-objc-cliet是一个ObjectiveC实现的豆瓣API客户端。现在仅支持iOS。

1.提供OAuth2所需参数DOUService *service = [DOUService sharedIstace];service.clietId = kAPIKey;service.clietSecret = kPrivateKey;2.发起一个异步请求NSStrig *subPath = [NSStrig strigWithFormat:@"/book/subject/%d", bookId];DOUQuery *query = [[[DOUQuery alloc] iitWithSubPath:subPath parameters:il] autorelease];query.apiBaseUrlStrig = service.apiBaseUrlStrig;DOUHttpRequest *req = [DOUHttpRequest requestWithQuery:query target:self];DOUService *service = [DOUService sharedIstace];[service addRequest:req];

若使用delegate方式处理回调,要注意一个问题,某些情况下,request的delegate被dealloc后,request才得到了返回。这时就是一个已释放的delegate来处理回调。这会造成程序崩溃。处理方法为,在request的delegate(例如某个UIViewCotroller)的dealloc方法中对request发送clearDelegatesAdCacel消息,再releaserequest。

另外一个更为优雅的方法是使用“闭包”(block),DOUHttpRequest提供了一个方法,可以用闭包来处理回调。由于request会自动retai闭包。所以,这就避免了使用delegate处理回调时可能出现的上述问题。

但,Objective-C的闭包在iOS4.0及其以上版本才得到支持。

DOUHttpRequest的闭包处理回调的方法:

+ (DOUHttpRequest *)requestWithQuery:(DOUQuery *)query                      completioBlock:(DOUBasicBlock)completioHadler;3.异步请求的回调- (void)requestFiished:(DOUHttpRequest *)req {    NSError *error = [req error];    if (!error) {        DoubaFeedEvet *feed = [[DoubaFeedEvet alloc] iitWithData:[req resposeData]];    }}- (void)requestFailed:(DOUHttpRequest *)req {    NSLog(@"error");}

功能介绍

douban-objc-client 是一个 Objective C 实现的 豆瓣 API 客户端。现在仅支持 iOS。 1.提供 OAuth2 所需参数
DOUService *servi...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论