繁体   English   中英

没有收到NSMetaDataQuery更新通知

[英]Not getting NSMetaDataQuery update Notification

我有以下代码:

// 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,重新启动设备。 两种设备都可以读取其“冻结”云,但是不会传播任何数据,也不会传递实时通知。 我确实做了几天在两个设备之间进行一些繁重的测试(传输数百MB的图片)。 现在,一切都停止了。

每个设备的云令牌完全不同,但是很稳定。 使用UIDocument存储到云中。

我想念什么吗? 我需要在iCloud中进行重置吗? 我可以在某处查看状态吗?

我不想更改应用程序包ID,以免被卡住...我想找到潜在的问题。 感谢您的提示!

代码还可以,但是设备上的iCloud处于状态。 最终,我关闭并打开“ iCloud Drive”(这与仅登录iCloud不同)。 放回应用程序的设置后,所有内容开始起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM