2

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"}}
4

1 に答える 1

0

アプリが iOS9 の状態でない場合、UIPasteboard にアクセスできませんUIApplicationStateActive。これにより、アプリがペーストボードをバックグラウンドで監視し、そこにコピーされたデータをスクレイピングできるというセキュリティ上の問題が修正される可能性が最も高くなります。

[AppDelegate applicationWillResignActive:]バックグラウンドに入るときにペーストボードをクリアする必要があったため、アプリが からUIApplicationStateActiveに移行するときに呼び出されるで行うことにしましたUIApplicationStateInactive。ただし、このメソッドは、電話がかかってきたときや、プッシュ通知アラート ウィンドウが表示されたときにも呼び出されます。

注: から UIPasteboard への変更をテストするときに、メソッドにブレークポイントを設定すると、メソッドが終了[AppDelegate applicationWillResignActive:]する前に への移行が続行されます。UIApplicationStateInactiveこれにより、コードをステップ実行するときに UIPasteboard が再びロックされます。UIPasteboard を変更した後にブレークポイントを設定しても問題ありません。

于 2015-11-23T20:04:04.313 に答える