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, все должно быть в порядке.

Другие вопросы по тегам