OneDrive SDK - IOS 获取特殊文件夹

OneDrive SDK - IOS Get Special Folder

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

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

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

我要构建的url很简单

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

首先请注意,您生成的请求不太正确。您想要从 "Music" 文件夹生成的 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. 包含 NSArrayODItemODCollection 称为 values 这些是音乐文件夹的子项。
  2. 另一个ODChildrenCollectionRequest,默认我们只return第一个 一个集合中有 200 个项目,这是您可以发出的另一个请求 这将 return 下一页的项目。
  3. 一个 NSError 对象,这将是 nil 除非出现错误 请求中的某处。