0

クラッシュ レポートが iTunes Connect に表示されたので、それを Xcode にロードしました。

関連する部分は次のとおりです。

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Last Exception Backtrace:
0   CoreFoundation                  0x323e188f __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x34437259 objc_exception_throw + 33
2   CoreFoundation                  0x323e1789 +[NSException raise:format:] + 1
3   CoreFoundation                  0x323e17ab +[NSException raise:format:] + 35
4   Bitrate Tester                  0x00048435 0x0001a435
5   Bitrate Tester                  0x00031473 -[FirstViewController viewDidLoad] (FirstViewController.m:27)

FirstViewController は、驚くことではありませんが、私のアプリが表示する最初のビュー コントローラーです。つまり、これ[FirstViewController viewDidLoad]は基本的に、私のアプリで呼び出される最初の実際のメソッドです。したがって、以前に呼び出された何かが間違っている可能性はあまりありません。

さて、これはどのようviewDidLoadに見えるかです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    DefaultSHKConfigurator *configurator = [[MySHKConfigurator alloc] init];
    [SHKConfiguration sharedInstanceWithConfigurator:configurator];
    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKFacebook",@"SHKTwitter",@"SHKMail",nil] forType:SHKShareTypeText];
}

27行目は

    [SHKConfiguration sharedInstanceWithConfigurator:configurator];

では、ShareKit が私のアプリでクラッシュを引き起こしているのでしょうか?? どのデバイスでも問題を再現できなかったことに注意してください (iOS シミュレーター、iOS 5.1.1 の iPhone 4、iOS 5.1.1 の iPad 2、iOS 5.1 の iPhone 3GS でテストしました。 1)。何かご意見は?

4

1 に答える 1

1

アプリで最初に呼び出されるメソッドはapplicationDidFinishLaunchingWithOptionsだと思います。アプリデリゲートでは、viewDidLoadではありません。

ビューがアンロードされ(メモリが少ないなどの理由で)、再度ロードされる場合があります。今回はコンフィギュレーターが2回ロードされる可能性がありますが、これは悪いことです。

したがって、解決策は、構成wikiに記載されているように、ShareKit構成をapplicationDidFinishLaunchingWithOptionsに移動することです。このメソッドは、1回だけ呼び出されることが保証されています。

于 2012-06-19T19:36:32.127 に答える