我有一个非常简单的应用程序,只有一个视图,包含几个UILabel.在运行模拟时,Xcode控制台返回错误:
"libMobileGestalt MobileGestalt.c:875:此平台不支持MGIsDeviceOneOfType."
模拟器本身只显示一个白色屏幕.我也尝试在具有相同白屏的开发者设备上运行它.我搜索过文档,但找不到任何对'MGIsDeviceOneOfType'的引用.该应用程序是在Mac OS 10.14上的Xcode 10 beta版中用Swift编写的.我试图在iPhone 7-X模拟器以及开发iPhone 7上运行它,所有这些都运行目标软件(12.0).
运行功能后
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Run Code Online (Sandbox Code Playgroud)
发生了崩溃:
Assertion failure in
-[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', `enter code here`reason: 'Application windows are expected to have a root view controller at the end of application launch'
*** First throw call stack:
(
0 CoreFoundation 0x0000000109377885 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000108df0df1 objc_exception_throw + 48
2 CoreFoundation 0x00000001093776ea +[NSException raise:format:arguments:] + 106
3 Foundation 0x0000000108a42bb1 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198
4 UIKit 0x000000010760e350 -[UIApplication _runWithMainScene:transitionContext:completion:] + 2875
5 …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的iPhone应用程序转换为通用应用程序.我将设备切换到Universal并让Xcode为我做了一个MainWindow-iPad.xib的事情,现在当我在iPhone模拟器中运行应用程序时,它工作正常,但是当我在iPad模拟器中运行它时,我得到一个白色屏幕和Application windows are expected to have a root view controller at the end of application launch错误.我已经阅读了一些关于同样问题的其他帖子,但没有一个仅限于一个设备.
这是我的application:didFinishLaunchWithOptions:方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/* some dropbox setup stuff */
// INIT VIEW AND CORE DATA
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
NSManagedObjectContext *context = [self managedObjectContext];
if (!context) {
// Handle the error.
}
rootViewController.managedObjectContext = context;
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;
[_window addSubview:[_navigationController view]];
[_window makeKeyAndVisible];
[rootViewController release];
[aNavigationController release]; …Run Code Online (Sandbox Code Playgroud) 当我运行我的应用程序时,我在控制台中收到一条消息:
2011-11-16 19:17:41.292 Juice [8674:707]应用程序在应用程序启动结束时应该有一个根视图控制器
我从别人那里听说这与这个方法有关 didFinishLaunchingWithOptions
如果有人对我收到此错误的原因有任何建议,我将不胜感激.
我的方法代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
return YES;
}
Run Code Online (Sandbox Code Playgroud) 我现在已经坚持了几个小时这个警告.我一直在寻找答案,尝试了我找到的所有答案,但找不到解决办法.这是我所拥有的代码的破败,Xcode默认生成.
这是我的AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我在main.m上有这个(根据这个答案)
int main(int argc, char *argv[])
{
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
我也正确连接了我的MainWindow.xib中的所有连接.所以我现在不知所措.我可能遗失的任何东西?提前致谢!
我有这个问题,但是我在这个论坛或互联网上找到的信息似乎都无法帮助我.
似乎有两个地方会出现此错误:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Run Code Online (Sandbox Code Playgroud)
最后一个参数UIApplicationMain返回NSString我的类的值AppDelegate.因此工作正常.
2.AppDelegate.m - 有一种设置根视图控制器的"旧"方法,如下所示:
[self.window addSubview:rootViewController];
Run Code Online (Sandbox Code Playgroud)
但是,在我的应用程序中,它已更新为:
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
因此,互联网上的当前信息都不起作用.更令人费解的是,我的同事可以让它在他的计算机上工作得非常好 - 他是那个向我发送应用程序源代码的人,所以所有的设置和代码应该完全相同.
我试图在模拟器中启动它.它是针对iOS 5构建的,但我试图在iOS 6.0模拟器上运行它.
我有最新的XCode(4.5.1).
有什么理由会发生这种情况吗?我该如何纠正呢?
非常感谢
汤姆
我刚刚创建了测试应用程序,并希望从其他应用程序中午餐.
在这两个应用中添加了Url类型和方案.然后从一个叫做的app:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Test://test_page/"]];
Run Code Online (Sandbox Code Playgroud)
这有效,但我收到了警告:
应用程序窗口应在应用程序启动结束时具有根视图控制器
我在这里缺少什么?
谢谢
编辑:添加测试应用午餐方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *mainView = [[MyViewController alloc] init];
UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: mainView];
[self.window setRootViewController: navControl];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用facebook iOS SDK安装教程:https://developers.facebook.com/docs/mobile/ios/build/
在第4步:添加注销到您的应用程序后,
我在5.1模拟器(xcode 4.3.2)上看到一个空白的白色屏幕,控制台显示一条消息:
应用程序窗口应在应用程序启动结束时具有根视图控制器
编辑-1
谢谢你的回复; 我在创建应用程序时选择了"单一视图应用程序"模板.在MainStoryBoard.storyboard中,我创建了一个对象并为其分配了MyGreatIOSAppAppDelegate类.将此对象的viewController出口拖放到View Controller.
这是MyGreatIOSAppAppDelegate.m中的代码
#import "MyGreatIOSAppAppDelegate.h"
#import "xxxViewController.h"
@implementation IJSAppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize facebook;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
// Add the logout button
UIButton *logoutButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
logoutButton.frame = CGRectMake(40, 40, 200, 40);
[logoutButton setTitle:@"Log Out" forState:UIControlStateNormal];
[logoutButton addTarget:self action:@selector(logoutButtonClicked)
forControlEvents:UIControlEventTouchUpInside];
[self.viewController.view addSubview:logoutButton];
facebook = [[Facebook alloc] …Run Code Online (Sandbox Code Playgroud) 我究竟做错了什么?我有一个像这张图片中显示的那样的数据库结构。 
在 appleDelegate.swift 中,我只想检查“用户”节点下是否确实存在某个用户令牌。也就是说,如果“用户”具有子 currentUserID(字符串标记)。我了解observeSingleEvent 是异步执行的。我在swift 中收到此错误:“应用程序窗口应在应用程序启动结束时有一个根视图控制器”。在“func application(_ application:UIApplication”)中,我有这个代码。我在下面还有我的完成处理程序函数。
if let user = Auth.auth().currentUser{
let currentUserID = user.uid
ifUserIsMember(userId:currentUserID){(exist)->() in
if exist == true{
print("user is member")
self.window?.rootViewController = CustomTabBarController()
} else {
self.window?.rootViewController = UINavigationController(rootViewController: LoginController())
}
}
return true
} else {
self.window?.rootViewController = UINavigationController(rootViewController: LoginController())
return true
}
}
func ifUserIsMember(userId:String,completionHandler:@escaping((_ exists : Bool)->Void)){
print("ifUserIsMember")
let ref = Database.database().reference()
ref.child("users").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.hasChild(userId) {
print("user exists")
completionHandler(true)
} else {
print("user doesn't exist") …Run Code Online (Sandbox Code Playgroud) ios ×7
objective-c ×5
ios5 ×2
iphone ×2
swift ×2
xcode ×2
console ×1
facebook ×1
firebase ×1
ios6 ×1
ios9 ×1
mainwindow ×1
uiview ×1
url-scheme ×1
xcode7 ×1