2014-02-28 6 views
0

Dropbox Sync SDK를 내 iOS 앱에 통합합니다. 사용자가 UIDocument에있을 때 앱이 비활성 상태 (홈 버튼, 잠금 등)가 된 다음 Dropbox에서 다른 사람이 파일을 변경 한 다음 사용자가로 돌아가도록 설정하려고합니다. 앱에서 변경 사항이 다른 곳에서 발생했다는 알림을 받게됩니다. 여기에 내가 지금 가지고있는 무엇 : 내있는 viewDidLoad에서iOS Dropbox Sync API - 최신 상태 감지

나는이 :이 준 것이 바람직 작동

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

:

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

가 그럼이 방법을 가지고있다. 앱이 처음으로 돌아 오면 self.dropboxFile.newerStatusNO을 반환합니다. 앱을 종료하고 다시 돌아 오면 YES을 반환합니다. 하지만 앱을 처음 돌려받는 경우 YES을 반환해야합니다. 이것은 시간과 관련이 없습니다 - 돌아 오기 전에 몇 분을 기다릴 수 있으며, 처음에는 실패하고 두 번째에는 성공합니다. 어떤 아이디어?

감사합니다.

참고 :이 문제는 앱이 비활성 상태가되어 파일이 변경된 경우에만 발생합니다. 앱이 여전히 활성화되어있는 상태에서 파일이 변경된 다음 앱이 나가서 다시 돌아 오면 예상대로 알림이 전송됩니다.

+1

이렇게하지 마십시오. 'DBFile'에 옵저버를 추가하기 만하면 파일의 상태가 변경 될 때마다 통보됩니다. – rmaddy

답변

0

@ rmaddy 님의 의견은 정확합니다. 그것을 대답으로 옮기십시오.

변경할 때 알림을 받으려면 사용자의 DBFile에 옵저버를 추가해야합니다. 무슨 일이 일어나고있는 귀하의 응용 프로그램이 다시 시작되고 상태를 즉시 확인하지만, 응용 프로그램이 막 시작된 ​​이래로 아직 서버와 대화하고 새로운 파일 내용에 대해 배울 시간이 없었습니다. DBFile의 옵저버는 앱이 서버와 통신하고 변경 사항을 알게되면 즉시 실행됩니다.

+0

실제로. 감사합니다. @smarx. 옵저버를 추가하면 웨이크 업 후 변경 사항을 감지 할 수있는 시간이 파일에 제공됩니다. 나는 관찰자를 잠시 후에 제거해야했다. b/c 나는 편집하는 동안이 아니라 깨우기에서만 변화를 감지하고 싶다. – Hash88