iOS Dropbox同步API-检测更新的状态



我正在将Dropbox Sync SDK集成到我的iOS应用程序中。我想设置它,这样当用户在UIDocument中,然后应用程序变为非活动状态(主页按钮、锁定等),然后Dropbox中的其他人更改了文件,然后用户返回应用程序时,他们将被告知在其他地方进行了更改。这是我现在拥有的:

在我的视图DidLoad中,我有:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkForNewerStatus) name:UIApplicationDidBecomeActiveNotification object:nil];

然后我有了这个方法:

- (void)checkForNewerStatus
{
if (self.dropboxFile.newerStatus)
{
//alert user of changes
}
}

这是半理想的工作方式。当应用程序第一次返回时,self.dropboxFile.newerStatus返回NO。如果我离开应用程序,第二次回来,它会返回YES。但我需要它在应用程序第一次回来时返回YES。这与时间无关——我可以等几分钟再回来,但第一次还是失败了,第二次又成功了。有什么想法吗?

非常感谢!

注意:只有当应用程序处于非活动状态,然后文件发生更改时,才会出现此问题。如果在应用程序仍处于活动状态时更改了文件,然后应用程序离开并返回,则会按预期发出警报。

@rmaddy上面的评论是正确的。只是把它变成一个答案。

您需要在DBFile上添加一个观察者,以便在其更改时得到通知。现在的情况是,你的应用程序正在重新启动,你会立即检查状态,但由于应用程序刚刚启动,它还没有时间与服务器交谈并了解更新的文件内容。一旦应用程序能够与服务器通信并发现更改,DBFile上的观察员就会启动。

最新更新