Не получено уведомление об обновлении NSMetaDataQuery - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующий код:

// Main thread
NotificationCenter.default.addObserver( self,
    selector:#selector(queryDidFinish),
    name:NSNotification.Name.NSMetadataQueryDidFinishGathering, object:nil)

NotificationCenter.default.addObserver( self,
    selector:#selector(queryDidUpdate),
    name:NSNotification.Name.NSMetadataQueryDidUpdate, object:nil)

, а также:

private var query = NSMetadataQuery() // Class level

func queryCloud()
{
    // Called on main thread
    query.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
    query.predicate = NSPredicate(format: "(%K like '*.jpg')",
                                    NSMetadataItemFSNameKey) 
    queryHot.start()
}

@objc func queryDidFinish(notification: NSNotification)
{
    print("This gets called once on main thread")
    print("and the query can be read")
}

@objc func queryDidUpdate(notification: NSNotification)
{
    print("This does not get called")
}

Итак, вышеприведенное «используется для работы», на двух устройствах.Теперь ни одно из устройств не получает вызов queryDidUpdate ().Я пытался удалить приложение, включить и отключить облачные разрешения, войти и выйти из iCloud, перезагрузить устройства.Оба устройства могут считывать свое «замороженное» облако, но данные не передаются и уведомления о фазе в реальном времени не доставляются.Я провел несколько тяжелых испытаний (перенося сотни МБ изображений) между двумя устройствами в течение нескольких дней.И теперь все перестало работать.

Облачные токены для каждого устройства совершенно разные, но стабильные.Использование UIDocument для хранения в облаке.

Я что-то упустил?Есть ли что-то, что мне нужно сбросить в iCloud?Есть ли где-нибудь статус, который я могу проверить?

Я не хочу менять идентификатор комплекта приложений, чтобы освободиться ... Я хотел бы найти основную проблему.Спасибо за любые советы!

1 Ответ

0 голосов
/ 21 октября 2018

Код в порядке, но iCloud на устройстве был в состоянии.В конечном итоге я выключил и включил «iCloud Drive» (что отличается от простого входа в iCloud).После возврата настроек приложения все заработало.

...