XcodeからiOSシミュレータを起動し、黒い画面が表示された後、Xcodeがハングしてタスクを停止できない



7 Answers

エミュレータをリセットする前に、まずプロジェクト " プロジェクトナビゲータ "画面に行き、 一般 - > デポイメント情報画面の下で、 メインインタフェースプロパティが正しく設定されていることを確認してください!

Question

iOSシミュレータで、基本的なiPhoneアプリケーション(スタンフォードiTunes CS193p講義を通過中)の実行に問題があります。

私はしばらく(GoogleとSOの両方)検索してきましたが、これまでのところ解決策を見つけることができませんでした。 似たような多くのバグがありますが、解決策はこれを修正していないようです。

Xcodeで "実行"をクリックします。 コンパイルして正常にビルドし、iOSシミュレータを起動しますが、アプリケーションをロードすることはありません。 上部のステータスバーのみ。 黒い画面。

私は非常に基本的なコード(講義に続いて)を書いただけで、この問題を乗り越えることはできません。

問題をもっと混乱させるために、私はこれらの講義の前にWebラッパー(UIWebView)を書きました。これはうまくいきます。 しかし、コードにはほとんど違いはありません。 最初から作成した新しいアプリはすべて、同じ黒画面の問題で失敗します。

シミュレータのホームボタンを押してアプリを起動すると、そのアプリが表示されます。 しかし、Xcodeは何が起こっているのか分からないようです。

それは、XcodeがiOS Simulatorと話す能力を失ったようで、(たとえ私がiOSシミュレータを終了しても)動作していると想定しているようです。 Xcodeを試して終了し、タスクを停止するように指示します。 その後、それはちょうどハングアップします。 だから私はXcodeから抜け出すために強制的に再起動する必要があります。

私は使用しています: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



解決策1: Quit simulatorQuit simulatorしてもう一度やり直すことができます。

解決策2 (推奨): iOS Simulator - > Reset Content and Settings...

これで、 'Are you sure you want to reset the iOS Simulator content and settings?'という警告がポップアップ表示され'Are you sure you want to reset the iOS Simulator content and settings?'

必要に応じてReset選択するか、 Don't Reset

シミュレータのコンテンツをリセットすると、シミュレータにインストールされているすべてのアプリが削除され、初期設定にリセットされます。




他のプロジェクトからストーリーボードをコピーした後に黒い画面が表示されている場合は、これを行ってください




私はダグの提案( "Reset Content and Settings")を行っていましたが、時間がかかっていて、本当に面倒です。 あなたのシミュレータでcmd + Lを押すか、スクリーンをロックするシミュレータメニューの "Hardware - > Lock"に行きます。スクリーンロックを解除すると、何も起こっていないようなアプリが動作します:)




Simulator> Reset Contents and Settingsをクリックしてシミュレータをリセットしてください。




私はこのための修正を見つけることができました。 このブログ記事の礼儀で見つかった:

http://vandadnp.wordpress.com/2012/03/18/xcode-4-3-1-cannot-attach-to-ios-simulator/

解決策は、リリースまたはデバッグのためにいくつかのオプションをロードするcmd + shift +、(command、shift、およびcomma "、")..を押すことです。

デバッガをLLDBからGDBに変更します。 これにより、問題が解決されます。




もう1つの解決策は、Objective Cプロジェクトでプログラム的にUIを構築する場合、ビューを拡張するコードを追加する必要があるため、これらの3行を追加して、ウィンドウのインターフェースをコード(外部2実際にコードとやりとりしていて、もう1つは画面を白に変えて、それが動作することを知っているでしょう)。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

...

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];


return YES;
}



コンピュータを再起動するだけで十分です。




Related