douban-objc-client

码农软件 · 软件分类 · 网站API · 2019-03-10 14:43:53

软件介绍

douban-objc-client 是一个 Objective C 实现的 豆瓣 API 客户端。现在仅支持 iOS。

1.提供 OAuth2 所需参数

DOUService *service = [DOUService sharedInstance];
service.clientId = kAPIKey;
service.clientSecret = kPrivateKey;

2.发起一个异步请求

NSString *subPath = [NSString stringWithFormat:@"/book/subject/%d", bookId];
DOUQuery *query = [[[DOUQuery alloc] initWithSubPath:subPath parameters:nil] autorelease];

query.apiBaseUrlString = service.apiBaseUrlString;
DOUHttpRequest *req = [DOUHttpRequest requestWithQuery:query target:self];

DOUService *service = [DOUService sharedInstance];
[service addRequest:req];

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

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

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

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

+ (DOUHttpRequest *)requestWithQuery:(DOUQuery *)query 
                     completionBlock:(DOUBasicBlock)completionHandler;

3.异步请求的回调

- (void)requestFinished:(DOUHttpRequest *)req {
    NSError *error = [req error];
    if (!error) {
        DoubanFeedEvent *feed = [[DoubanFeedEvent alloc] initWithData:[req responseData]];
    }
}

- (void)requestFailed:(DOUHttpRequest *)req {
    NSLog(@"error");
}

本文地址:https://codercto.com/soft/d/1044.html

OpenCV3编程入门

OpenCV3编程入门

毛星云 / 电子工业出版社 / 2015-2 / 79

OpenCV在计算机视觉领域扮演着重要的角色。作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法。本书以当前最新版本的OpenCV最常用最核心的组件模块为索引,深入浅出地介绍了OpenCV2和OpenCV3中的强大功能、性能,以及新特性。书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个详细注释的程序源代码与思路说明。读者......一起来看看 《OpenCV3编程入门》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具