Ich habe Probleme beim Ausführen meiner grundlegenden iPhone-Anwendung (während ich die Vorlesungen zu Stanford iTunes CS193p durchlaufe) im iOS-Simulator.
Ich habe eine Weile gesucht (sowohl Google als auch SO), konnte aber bisher keine Lösung finden. Es gibt viele ähnliche Fehler, aber die Lösungen scheinen dies nicht zu beheben.
In Xcode klicke ich auf "Ausführen". Es wird erfolgreich kompiliert und erstellt, startet den iOS-Simulator, kann die App jedoch nie laden. Nur die Statusleiste oben. Mit einem schwarzen Bildschirm.
Ich habe nur sehr einfachen Code geschrieben (zusammen mit den Vorlesungen) und kann dieses Problem nicht überwinden.
Um die Sache noch mehr zu verwirren, habe ich (UIWebView)
vor diesen Vorträgen einen Web-Wrapper geschrieben, der gut funktioniert. Aber es gibt kaum einen Unterschied im Code. Alle neuen Apps, die ich von Grund auf neu erstelle, schlagen mit demselben Problem mit dem schwarzen Bildschirm fehl.
Wenn ich die Home-Taste im Simulator drücke und die App starte, wird sie angezeigt. Aber Xcode scheint nicht zu wissen, was los ist.
Es ist, als ob Xcode die Fähigkeit verloren hat, mit iOS Simulator zu kommunizieren, und davon ausgeht, dass es ausgeführt wird (selbst wenn ich iOS Simulator beende). Ich versuche, Xcode zu beenden, und ich werde aufgefordert, die Aufgaben zu beenden. Dann hängt es einfach. Also muss ich einen Neustart erzwingen, um Xcode zu verlassen.
Ich verwende: OSX 10.8.2 Xcode 4.5.2 iOS Simulator 6.0
CalculatorAppDelegate.h
#import <UIKit/UIKit.h>
@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
CalculatorAppDelegate.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