由于 UIApplication.sharedApplication()在iOS8今天的小部件/扩展中不可用,我如何动态检查代码当前是作为小部件还是应用程序运行?在运行应用时,我想拨打电话。
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
当运行与widget相同的代码时,应该简单地跳过它。有可能检查一下吗?
答案 0 :(得分:1)
为您的分机创建单独的前缀文件,在前缀文件中定义一个未在应用程序前缀文件中定义的宏。然后检查是否定义了此宏将告诉您是否在扩展名中。或者,您可以在应用的前缀文件中定义宏,而不是在扩展程序中定义宏。并检查另一个方向。
答案 1 :(得分:0)
我的解决方案:
#ifdef UIApplication
... //App
#else
... //Today Extension
#endif
答案 2 :(得分:0)
我检查了我的主机应用程序的软件包标识符,以确定我是在其中运行还是在我的今日扩展程序中运行。
例如:
if Bundle.main.bundleIdentifier == "your.host.app.bundleIdentifier" {
UIApplication.sharedApplication().registerUserNotificationSettings(setting)
} else {
// Today Extension
}