我需要全局布尔值来确定代码是否正在执行在应用程序或扩展程序上下文中,或者有一些预定义的#if我可以使用吗?
需要决定是否可以使用UserDefaults.standard或回退到共享的用户默认设置
由于扩展目标的bundleIdentifier
与主应用程序不同,因此您可以检查bundleIdentifier
值。可以通过以下方式访问:
Bundle.main.bundleIdentifier
我仅在Today扩展程序上进行了测试,不确定是否适用于其他扩展程序。对我来说,输出是这样的:
主应用程序:com.example.app
扩展名:com.example.app.today
最后,此方法将允许您区分运行代码的扩展名。