UIPasteboard возвращает ноль в фоновом режиме

Я пытаюсь прочитать Картон 5 раз в applicatioDidEnterBackground раздел AppDelegate. Для печати строки я использую print(UIPasteboard.general.string!) но он работает только в функции, а в других вложенных функциях - нет. Позволь мне объяснить:

func applicationDidEnterBackground(_ application: UIApplication) {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.

    print(UIPasteboard.general.string!) //here it works perfectly and prints the string correctly

    for _ in 0...5 {
       print(UIPasteboard.general.string!) //here it returns nil 
    }

}

Я читал другие запросы, похожие на мои, но никто из них не помог мне. Я не знаю, если это ограничение безопасности, но если вы можете мне помочь, я буду признателен

1 ответ

Решение

iOS 9 изменилась UIPasteboard чтобы запретить фоновый доступ:

Предположительно они внесли это изменение, чтобы фоновые приложения не шпионили за содержимым вашего картона. Иногда люди используют монтажную панель для копирования пароля из одного приложения в другое, поэтому блокировка фонового доступа к монтажной панели является проблемой безопасности.

Кроме того, известно, что некоторые приложения (например, Facebook) собирают как можно больше данных о пользователе, в то время как политики конфиденциальности намного слабее, чем у Apple. Блокировка фонового доступа к картону - это способ уменьшить возможности Facebook следить за вашими действиями, не относящимися к Facebook.

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