OneDrive SDK - IOS获取特殊文件夹

时间:2015-10-29 16:21:54

标签: ios onedrive

我对以正确的方式创建查询以便获取特殊文件夹中的所有项目而正确使用OneDriveSDK for IOS感到困惑。

我想获取音乐项目但是一旦我创建了请求应该如何执行?

我找不到任何相关的例子。其他类型的请求有实现方法,但没有特殊文件夹

我想构建的网址很简单

https://api.onedrive.com/v1.0/drive/special/music/children

但我对如何使用SDK创建和执行它感到困惑

@class ODItemRequest, ODURLSessionDataTask;

我得到的最远的是

ODSpecialCollectionRequest *musicCollectionRequest = self.client.drive.special.request; 

接下来我会做什么?

文档位于

https://github.com/OneDrive/onedrive-sdk-ios/blob/master/docs/overview.md

并且sdk位于

https://github.com/OneDrive/onedrive-sdk-i

ODSpecialCollectionRequest.h

#import "ODModels.h"
#import "ODCollectionRequest.h"

typedef void (^ODItemCompletionHandler)(ODItem *response, NSError *error);

typedef void (^ODSpecialCompletionHandler)(ODCollection *response, ODSpecialCollectionRequest *nextRequest, NSError *error);

/**
* The header for type ODSpecialCollectionRequestBuilder.
*/



@interface ODSpecialCollectionRequest : ODCollectionRequest
@end

1 个答案:

答案 0 :(得分:1)

首先请注意,您生成的请求不太正确。您需要从“音乐”文件夹生成的ODChildrenCollectionRequest。为此,您需要使用方法调用(而不是上面的属性)构造正确的URL。这看起来像:

ODChildrenCollectionRequest *request = [[self.client drive] special:@"Music"] children] request];

然后,您想要执行子请求的get。这看起来像:

[request getWithCompletion:^(ODCollection *response, ODChildrenCollectionRequest *nextRequest, NSError *error){
     if(!error){
     // Do Stuff with children
     }
}];

完成处理程序采用三个参数

  1. 包含ODCollection NSArrayODItem的{​​{1}} values这些是音乐文件夹的子项。
  2. 另一个ODChildrenCollectionRequest,默认情况下我们只返回第一个     集合中有200个项目,这是您可以发出的另一个请求     这将返回下一页的项目。
  3. NSError对象,除非出现错误,否则为nil     在请求的某个地方。