XCODE 11 - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[AppDelegate 窗口]:
Posted
技术标签:
【中文标题】XCODE 11 - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[AppDelegate 窗口]:【英文标题】:XCODE 11 - Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate window]: 【发布时间】:2020-04-23 07:00:41 【问题描述】:最近我更新到 XCODE 11 并开始了解 SceneDelegate 和 AppDelegate 的概念。这是我在 AppDelegate 中的简单代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor yellowColor];
return YES;
但不幸的是,它在以下行崩溃,如图所示:
它显示以下错误:
请帮助我解决我面临的问题。任何帮助将不胜感激。
【问题讨论】:
您可以根据需要删除屏幕代理。如果您需要步骤,请告诉我。 请告诉双方.. 删除场景延迟并解决此错误 【参考方案1】:删除屏幕代理:
转到 info.plist 并删除选定的条目,如下所示:
从项目中删除 ScreenDelegate.h 和 ScreenDelegate.m:
将您的 AppDelegate.h 更新为:
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow * window;
@end
最后,从 AppDelegates 类中移除 Screen 委托:
希望对您有所帮助。
如果你想使用 ScreenDelegates,你可以参考 Asperi 的答案
【讨论】:
【参考方案2】:假设你的根视图控制器的视图是透明的,这里是在你的场景中设置UIWindow
背景颜色的地方:
在SceneDelegate.m
中修改如下回调如图:
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions
if (scene.class == UIWindowScene.class)
[[(UIWindowScene *) scene windows].firstObject setBackgroundColor:UIColor.yellowColor];
【讨论】:
非常感谢...我可以在这段代码中设置 homeindicator 的背景颜色吗?如果是,请也帮助我,我会投票并接受.. @FionaShoff,不,你不能......而且,顺便说一句,这与主题问题异常有何关系? ;) 其实我也想让主页指示器的背景颜色透明..我只想显示主页指示器线而没有任何背景颜色..以上是关于XCODE 11 - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[AppDelegate 窗口]:的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常“NSInvalidArgumentException”,我的 Xcode 应用程序在尝试实现 NSFetchedResultsController 后崩溃
请向我解释错误的性质:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序
XCode 错误:未捕获的异常“NSInternalInconsistencyException”
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无效的产品标识符:(null)”