Почему это работает нормально при запуске проекта, но ничего не делает при запуске приложения с устройства? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь добавить быстрые действия на домашний экран в свое приложение, и я написал этот код в делегате приложения

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {

    switch shortcutItem.type {
    case "com.myName.myApp.add":
        DispatchQueue.main.async {
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: self.addId), object: nil)

        }
        print("Task")
    case "com.myName.myApp.search":
         DispatchQueue.main.async {
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: self.searchId), object: nil)
         }
        print("Search")
    case "com.myName.myApp.settings":
         DispatchQueue.main.async {
         NotificationCenter.default.post(name: NSNotification.Name(rawValue: self.settingsId), object: nil)
         }
         print("Settings")
    default:
        break
    }

  }

И здесь я добавляю наблюдателей в av c

func addObs()
    {

        NotificationCenter.default.addObserver(self, selector: #selector(showAdd), name: Notification.Name(addId), object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(showSearch), name: Notification.Name(searchId), object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(showSettings), name: Notification.Name(settingsId), object: nil)
    }

    @objc func showAdd() {
        DispatchQueue.main.async {
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "AddVC") as! AddViewController
            self.present(vc, animated: true)
        }
    }

        @objc func showSearch() {
            DispatchQueue.main.async {
                let vc = self.storyboard?.instantiateViewController(withIdentifier: "SearchVC") as! SearchViewController
            self.present(vc, animated: true, completion: nil)
            }
        }
        @objc func showSettings() {
            DispatchQueue.main.async {
                let vc = self.storyboard?.instantiateViewController(withIdentifier: "SettingsVC") as! SettingsViewController
            self.present(vc, animated: true, completion: nil)
            }
        }

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

...