2

さて、これは私のアプリの最初の場所です私は何かのためにブロックを使用していますので、チェックする必要があるセットアップまたはXcode設定はありますか?これは私にはブロックの単純な使用法のように見えますが、特別なことは何もしていませんが、iOS6シミュレーターのtweetViewController.completionHandler= ^(TWTweetComposeViewControllerResult result)でクラッシュします。

- (void) showTweetComposer
{
    TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];

    [self presentViewController:tweetViewController animated:YES completion:nil];

    tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult result)
    {
        [self dismissModalViewControllerAnimated:YES];
    };

    [tweetViewController release];
}



thread #1: tid = 0x1c03, 0x02e3d09f libobjc.A.dylib`objc_msgSend + 19, stop reason = EXC_BAD_ACCESS (code=2, address=0x0)
    frame #0: 0x02e3d09f libobjc.A.dylib`objc_msgSend + 19
    frame #1: 0x02e28cc9 libobjc.A.dylib`objc_setProperty_nonatomic_copy + 49
    frame #2: 0x051c38b2 Social`-[SLTwitterComposeViewController setCompletionHandler:] + 47
    frame #3: 0x001e2e06 MyApp`-[SocialViewController showTweetComposer] + 246 at SocialViewController.m:137
    frame #4: 0x001e2ff7 MyApp`-[SocialViewController tweetToFriendsRowTouched] + 247 at SocialViewController.m:150
    frame #5: 0x02e3f663 libobjc.A.dylib`-[NSObject performSelector:] + 62
    frame #6: 0x0018b4f1 MyApp`-[GroupedTableViewController tableView:didSelectRowAtIndexPath:] + 401 at GroupedTableViewController.m:143

これは、Twitterにログインしているかどうかに関係なく発生します。

編集:showTweetComposerメソッドの先頭に単純なブロックベースのコードスニペットを追加して、コード内であらゆる種類のブロックが機能していることをテストしました。

[UIView animateWithDuration:0.2アニメーション:^ {self.view.alpha = 0.0; }完了:^(BOOL終了){[self.view removeFromSuperview]; }];

現在、この新しいブロックでクラッシュしています。したがって、私のプロジェクトには、ブロックの使用をサポートするように設定する必要があるものがあるように見えますが、それがどうなるかはわかりません。私のiOS展開ターゲットはiOS4.3に設定されています。

4

1 に答える 1

1

わかりました、解決しました。この要点は、-weak_libraryを使用してlibSystem.dylibに対してウィークリンクしないでください。

ここで答えを見つけました

于 2012-09-26T04:51:57.120 に答える