Ответ 1
В программе Swift появилось то же самое странное сообщение об ошибке, и, наконец, выяснилось, что не так с моим кодом. Правильный код:
override func viewDidLoad() {
super.viewDidLoad()
let fileMgr = NSFileManager.defaultManager()
ubiquityURL = fileMgr.URLForUbiquityContainerIdentifier(nil)
guard ubiquityURL != nil else {
print("Dave: Unable to access iCloud account")
return
}
ubiquityURL = ubiquityURL?.URLByAppendingPathComponent("Documents/savefile.txt")
metaDataQuery = NSMetadataQuery()
metaDataQuery?.predicate = NSPredicate(format: "%K like 'savefile.txt'", NSMetadataItemFSNameKey)
metaDataQuery?.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
NSNotificationCenter.defaultCenter().addObserver(self, selector: "metadataQueryDidFinishGathering:", name: NSMetadataQueryDidFinishGatheringNotification, object: metaDataQuery!)
metaDataQuery!.startQuery()
}
В приведенном выше коде правильный формат "% K нравится" savefile.txt ", но если вы забудете одинарные кавычки вокруг имени файла, вы получите странное сообщение об ошибке выполнения. Без единой цитаты вокруг имени файла запрос метаданных не сможет найти ваш файл в iCloud.