Iphone 设置TWTweetComposeViewController的完成处理程序时崩溃

Iphone 设置TWTweetComposeViewController的完成处理程序时崩溃,iphone,ios,twitter,objective-c-blocks,Iphone,Ios,Twitter,Objective C Blocks,好的,这是我的应用程序中的第一个地方,我使用块来做任何事情,所以我需要检查一些设置或Xcode设置吗?在我看来,这似乎是块的简单使用,没有做任何花哨的事情,但它在iOS 6模拟器中崩溃了:tweetViewController.completionHandler=^(TweetComposeViewController结果) - (void) showTweetComposer { TWTweetComposeViewController *tweetViewController = [

好的,这是我的应用程序中的第一个地方,我使用块来做任何事情,所以我需要检查一些设置或Xcode设置吗?在我看来,这似乎是块的简单使用,没有做任何花哨的事情,但它在iOS 6模拟器中崩溃了:tweetViewController.completionHandler=^(TweetComposeViewController结果)

- (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; }完成:^(布尔完成){ [self.view removeFromSuperview]; }];


现在它正在这个新街区上崩溃。所以,在我的项目中似乎有一些东西需要设置为支持使用块,但我不确定这将是什么。我的iOS部署目标设置为iOS 4.3。

好的,已解决。这一要点是,不要使用-weak_库对libSystem.dylib进行弱链接


找到答案

看起来tweetViewController可能在块执行之前被释放。它在设置completionHandler时崩溃,因此它甚至没有运行块。嗯,我在iOS 6模拟器上尝试了你的代码,效果很好。似乎是其他原因。在显示视图之前,请尝试设置完成处理程序。我已经编辑了我的帖子。似乎没有块代码可以工作,所以它与TwitterController没有直接关系。我想我缺少一些项目设置。