好的,这是我的应用程序中的第一个我正在使用块的任何东西,所以是否需要检查一些设置或Xcode设置?这在我看来是一个简单的块使用,没有做任何花哨的事情,但它在iOS 6模拟器中崩溃了: tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult结果)。
- (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部署目标设置为iOS 4.3。