iOS 9 Pasteboard: не может писать в фоновом режиме, когда в фоновом режиме
Я хочу писать в pasteboard, пока мое приложение находится в фоновом режиме в iOS 9. До iOS 8 работало нормально. Что-то мешает писать в фоновом режиме в iOS 9. Я думаю, что pasteboard заблокирован или удален, но я не уверен, В 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"}}
1 ответ
UIPasteboard не доступен, когда приложение не находится в UIApplicationStateActive
состояние в iOS9. Это, скорее всего, устранит проблему безопасности, когда приложение может наблюдать за монтажной панелью в фоновом режиме и очищать любые данные, скопированные в нее.
Мне нужно было очистить картон при входе в фон, поэтому я решил сделать это в [AppDelegate applicationWillResignActive:]
, который вызывается при переходе приложения из UIApplicationStateActive
в UIApplicationStateInactive
, Однако этот метод также вызывается, когда поступает телефонный звонок или отображается окно с уведомлением о push-уведомлении.
Примечание. При тестировании изменений в UIPasteboard из [AppDelegate applicationWillResignActive:]
, если вы установите точку останова в методе, он продолжит переход к UIApplicationStateInactive
до завершения метода. Это заставляет UIPasteboard снова блокироваться при пошаговом выполнении кода. Если вы изменили точку останова после изменения UIPasteboard, все должно быть в порядке.