当我的应用程序在iOS 9的后台时,我想在粘贴板上写东西。在iOS 8之前,它运行得很好。在iOS 9中,有一些东西阻止了在后台写东西。我想粘贴板要么被锁定了,要么被删除了,但我不确定。在iOS 9中,我不能在后台写东西,直到我重新创建粘贴板。
我知道在iOS 9中我们不能在后台阅读,但为什么我们不能写出来呢?
我正处于警告之下。
<Warning>: Could not write pasteboard database. Error: Error
Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save
the file “pasteboardDB” in the folder “com.apple.UIKit.pboard”."
UserInfo={NSFilePath=/var/mobile/Library/Caches/com.apple.UIKit.pboard/pasteboardDB,
NSUserStringVariant=Folder, NSUnderlyingError=0x124e066f0 {Error
Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}发布于 2015-11-24 04:04:04
当应用程序在iOS9中不处于UIApplicationStateActive状态时,无法访问UIPasteboard。这最有可能解决一个安全问题,即应用程序可以在后台观察粘贴板,并刮掉复制到其中的任何数据。
我需要在进入后台时清除粘贴板,所以我决定在[AppDelegate applicationWillResignActive:]中完成,当应用程序从UIApplicationStateActive过渡到UIApplicationStateInactive时会调用它。但是,当电话呼叫到达或显示推送通知警报窗口时,也会调用此方法。
注意:当从[AppDelegate applicationWillResignActive:]测试对UIPasteboard的更改时,如果您在方法中放置断点,它将在方法完成之前继续转换到UIApplicationStateInactive。这会导致在单步执行代码时UIPasteboard再次被锁定。如果在修改UIPasteboard之后设置断点,应该没问题。
https://stackoverflow.com/questions/33408048
复制相似问题