DBSyncStatus活动的Dropbox API用法

时间:2014-08-04 17:11:15

标签: ios dropbox dropbox-api

我正在通过iOS的学习核心数据,我发现自从该书在不到一年前出版以来,Dropbox API已经更新。

在书中,有这种方法:

- (void)refreshStatus
{
    DBAccount *account = [[DBAccountManager sharedManager] linkedAccount];
    if (!account.isLinked) {
        self.navigationItem.title = @"Unlinked";
    } else if ([[DBFilesystem sharedFilesystem] status] > DBSyncStatusActive) {
        self.navigationItem.title = @"Syncing";
    } else {
        self.navigationItem.title = @"Backups";
    }
}

我查看了当前Dropbox框架的标题,并且没有" DBSyncStatusActive",但有一个名为" DBSyncStatus"使用BOOL作为DBSyncStatus的活动属性。我将输入什么来获取返回DBSyncStatus的BOOL。

这里是文档的链接,但我不清楚我需要做什么才能让BOOL返回: https://www.dropbox.com/developers/sync/docs/ios#DBSyncStatus

2 个答案:

答案 0 :(得分:2)

最近发布的新版3.0.x版Sync / Datastore API改变了这种做法。

你所拥有的内容很难翻译,因为很难说出你在寻找什么。

新状态可以判断是否正在进行上传或下载,或者是否有同步的元数据。

如果您真正关心的是,如果发生任何事情,那么您可以这样做:

} else if ([DBFilesystem sharedFilesystem].status.anyInProgress) {

如果文件系统存在元数据同步,任何上传或任何下载,则会出现这种情况。

答案 1 :(得分:0)

@property (nonatomic, readonly) BOOL active;

应该是您的替代品,具体是关于同步状态活动。我已经尝试过,它运行良好。

- (void)refreshStatus {
        DBAccount *account = [[DBAccountManager sharedManager] linkedAccount];

        if (!account.isLinked) {
            self.navigationItem.title = @"Unlinked";
        } else if ([[DBFilesystem sharedFilesystem] status].active) {
            self.navigationItem.title = @"Syncing";
        }
        else {
            self.navigationItem.title = @"Backups";
        }

    }

原因如下:

@interface DBSyncStatus:NSObject

/ **后台同步正在积极处理或等待  变化。首次创建a时,同步处于活动状态  它完成了第一个文件信息同步。在那之后它是活跃的  只要有下载或上传的更改,或者有任何文件  开放或路径观察员注册。 * /

@property(非原子,只读)BOOL有效;