我在 iOS 模拟器中运行基本 iPhone 应用程序时遇到问题(在阅读斯坦福 iTunes CS193p 讲座时)。
我已经搜索了一段时间(Google 和 SO),但到目前为止找不到解决方案。类似的错误还有很多,但解决方案似乎并不能解决这个问题。
在 Xcode 中,我单击“运行”。它编译并构建成功,启动 iOS 模拟器,但从未加载应用程序。只有顶部的状态栏。黑屏。
我只编写了非常基本的代码(跟随讲座)并且无法解决这个问题。
为了让事情更加混乱,我写了一个网络包装器(UIWebView)
在这些讲座之前,这效果很好。但代码上几乎没有任何区别。我从头开始创建的所有新应用程序都因相同的黑屏问题而失败。
如果我点击模拟器上的主页按钮并启动应用程序,它将显示。但 Xcode 似乎不知道发生了什么。
就好像 Xcode 失去了与 iOS 模拟器对话的能力并假设它正在运行(即使我退出了 iOS 模拟器)。我尝试退出 Xcode,它要求我停止任务。然后它就挂了。所以我必须强制重新启动才能退出 Xcode。
我在用着:
操作系统 10.8.2
Xcode 4.5.2
iOS模拟器6.0
计算器 AppDelegate.h
#import <UIKit/UIKit.h>
@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
计算器 AppDelegate.m
#import "CalculatorAppDelegate.h"
@implementation CalculatorAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
CalculatorViewController.h
#import <UIKit/UIKit.h>
@interface CalculatorViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *display;
@end
CalculatorViewController.m
#import "CalculatorViewController.h"
@implementation CalculatorViewController
@synthesize display = _display;
- (IBAction)digitPressed:(UIButton *)sender
{
NSString *digit = [sender currentTitle];
NSLog(@"digit pressed = %@", digit);
}
@end