2016-06-20 3 views
1

내 응용 프로그램은 iCloud를 사용하여 동기화합니다.버튼을 통해 iCloud와 강제 동기화

// Configure persistant store on iCloud 

    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TodayViewController.persistentStoreDidChange), name: NSPersistentStoreCoordinatorStoresDidChangeNotification, object: nil) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TodayViewController.persistentStoreWillChange(_:)), name: NSPersistentStoreCoordinatorStoresWillChangeNotification, object: managedObjectContext.persistentStoreCoordinator) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TodayViewController.recieveICloudChanges(_:)), name: NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: managedObjectContext.persistentStoreCoordinator) 

와 viewWillDisappear : 내 기본보기 컨트롤러의 viewWillAppear에서

override func viewWillDisappear(animated: Bool) { 
    NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreCoordinatorStoresDidChangeNotification, object: nil) 
    NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreCoordinatorStoresWillChangeNotification, object: managedObjectContext.persistentStoreCoordinator) 
    NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: managedObjectContext.persistentStoreCoordinator) 
} 

그러나 때로는이 동기화 속도가 너무 느려합니다. 나는 사용자가 버튼을 두드려 싱크를 강요하고 싶거나 tableView를 스와핑하여 화면을 새로 고침 (재 동기화)하고 싶습니다. 어떻게해야합니까?

@IBAction forceSyncButton() {

** 여기에 무엇을 넣어하는 방법? **

}

당신을 감사합니다!

답변

3

코어 데이터에 내장 된 iCloud 지원 기능을 사용하고있는 것으로 보입니다. 불행하게도 동기화를 강제 실행하는 공개 API는 없습니다. 자동으로 처리되므로 앱이 일정을 변경하는 데 아무 것도 할 수 없습니다.

+0

그것은 유감스럽게 생각합니다 ....하지만 답변에 감사드립니다! –

+1

어쨌든 iCloud Core 데이터에서 벗어나길 원할 것입니다. 업데이트 된 iOS 10 문서에서는 거의 모든 기능이 중단되었습니다. 아마 ensembles.io를 보아라. –

+0

제로 그래, 나는주의 깊게 알아들을 것이다. iCloud Core Data는 실제로 실망스럽고 느리게 작동합니다. 조언 해주셔서 감사합니다! 나는 이것에 관해 새로운 사람이다. –

관련 문제