【问题标题】:iOS Dropbox Sync API - detecting newer statusiOS Dropbox Sync API - 检测更新的状态
【发布时间】:2014-03-03 07:30:50
【问题描述】:

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

在我的 viewDidLoad 中我有:

[[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。这与时间无关——我可以等几分钟再回来,但第一次仍然失败,第二次成功。有什么想法吗?

非常感谢!

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

【问题讨论】:

  • 不要这样做。只需将观察者添加到您的DBFile,然后您将在文件状态更改时收到通知。

标签: ios sync dropbox dropbox-api


【解决方案1】:

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

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

【讨论】:

  • 确实如此。谢谢和@smarx。添加观察者使文件有时间在唤醒后检测更改。我不得不在一段时间后移除观察者,尽管我只想在唤醒时检测变化,而不是在编辑时检测。
猜你喜欢
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多