我在 iOS 模拟器中运行基本的 iPhone 应用程序时遇到了麻烦(当我在斯坦福 iTunes CS193p 课堂上学习的时候)。
我已经搜索了一段时间(包括 Google 和 SO) ,但是到目前为止还没有找到一个解决方案。有许多类似的错误,但解决方案似乎并不能修复这个问题。
在 Xcode 中,我单击“ run”。它成功地编译和构建,启动 iOS 模拟器,但从来没有加载应用程序。只有顶部的状态栏。还有黑屏。
我只写了非常基本的代码(跟随讲座) ,无法解决这个问题。
更令人困惑的是,在这些讲座之前,我编写了一个 Web 包装器 (UIWebView)
,它工作得很好。但是密码几乎没有什么区别。我从头开始创建的所有新应用程序都会因为同样的黑屏问题而失败。
如果我点击模拟器上的主页按钮并启动应用程序,它将显示。但 Xcode 似乎不知道发生了什么。
这就好像 Xcode 已经失去了与 iOS 模拟器对话的能力,并假设它正在运行(即使我退出了 iOS 模拟器)。我尝试退出 Xcode,它要求我停止这些任务。然后它就挂起来了。所以我必须强制重启才能离开 Xcode。
我在用: OSX 10.8.2 Xcode 4.5.2 IOS 模拟器6.0
计算器应用程序代理
#import <UIKit/UIKit.h>
@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
CalculatorAppGenerate.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