首页 > 解决方案 > 从旧的 Dropbox SDK 迁移

问题描述

我正在从旧的 Dropbox Obj-C SDK 迁移到新的。我正在使用旧 SDK 中的以下方法:

- deletePath: - uploadFile:toPath:withParentRev:fromPath: - loadMetadata: - cancelAllRequests

还有一堆代表电话:

- (void)restClient:(DBUserClient*)client uploadedFile:(NSString*)destPath from:(NSString*)srcPath metadata:(DBMetadata*)metadata - (void)restClient:(DBUserClient*)client uploadFileFailedWithError:(NSError*)error - (void)restClient:(DBUserClient*)client deletedPath:(NSString *)path - (void)restClient:(DBUserClient*)client deletePathFailedWithError:(NSError*)error - (void)restClient:(DBUserClient*)client loadedMetadata:(DBMetadata*)metadata - (void)restClient:(DBUserClient*)client metadataUnchangedAtPath:(NSString*)path - (void)restClient:(DBUserClient*)client loadMetadataFailedWithError:(NSError*)error - (void)sessionDidReceiveAuthorizationFailure:(DBSession*)session userId:(NSString *)userId

新的 SDK 似乎没有类似这些方法或委托的东西。我有点惊讶的是,SDK 会被更新为与现有的完全不同。我在想也许我有什么问题,也许我缺少另一个 SDK?当然,尽管 API 发生了任何变化,但要以一种简单直观的方式维护 SDK,并且不需要对客户端代码进行重大更改,这肯定不会那么难。

我究竟做错了什么?

标签: iosobjective-cdropbox-sdk

解决方案


[交叉链接供参考:https ://www.dropboxforum.com/t5/API-Support-Feedback/DBRESTClient-and-DBrestClientDelegate-replacement-in-v2/mp/279439#M16767 ]

Dropbox API v2 Objective-C SDK 不是从旧的 Dropbox Core API v1 Objective-C SDK 构建的,因此执行这些操作的方式不同:

  • 删除路径:

使用deleteV2.

  • uploadFile:toPath:withParentRev:fromPath:

使用其中一种上传方法。这里有一个例子

  • 加载元数据:

要获取特定文件的元数据,请使用getMetadata. 要列出文件夹的内容,请使用listFolderlistFolderContinue

  • 取消所有请求

Dropbox API v2 Objective-C SDK 没有提供这样的帮助方法来一次取消所有请求。(尽管我们将其视为功能请求。)相反,这些方法返回您可以跟踪的任务对象。然后,您可以根据需要取消任何/所有任务。对于任何特定任务,这看起来像:

DBUploadTask *req = [client.filesRoutes upload...
[req cancel];

推荐阅读