我正在通过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
答案 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有效;