0

大家见鬼

我正在尝试使用 Twitter 框架在 IOS5 上的应用程序中发布一条 twitter 消息,当我运行我的应用程序时,它显示线程 1:程序收到信号:代码行上的“EXC_BAD_ACCESS”:iOS5twitter.completionHandler = ^( TWTweetComposeViewControllerResult 结果) ;

这里是 Twitter 代码块:

//代码块

TWTweetComposeViewController *iOS5twitter = [[TWTweetComposeViewController alloc] init];

[iOS5twitter addImage:self.item.image];    
[iOS5twitter addURL:self.item.URL];

//if I comment out the following block of code, it works.
iOS5twitter.completionHandler = ^(TWTweetComposeViewControllerResult result) 
{
    [self.currentTopViewController dismissViewControllerAnimated:YES completion:nil];

    switch (result) {

        case TWTweetComposeViewControllerResultDone:
            [self sendDidFinish];
            break;

        case TWTweetComposeViewControllerResultCancelled:
            [self sendDidCancel];                

        default:
            break;
    }
};   
//the above code can be commented out, the it works.

[self.currentTopViewController presentViewController:iOS5twitter animated:YES completion:nil];
[iOS5twitter release];

//代码块结束

如果我注释掉以下代码块,它可以工作并且可以在 Twitter 中发布消息,但唯一的问题是应用程序无法提示该对话框是否成功发布了消息。

//if I comment out the following block of code, it works.

/* iOS5twitter.completionHandler = ^(TWTweetComposeViewControllerResult 结果) { [self.currentTopViewController dismissViewControllerAnimated:YES completion:nil];

    switch (result) {

        case TWTweetComposeViewControllerResultDone:
            [self sendDidFinish];
            break;

        case TWTweetComposeViewControllerResultCancelled:
            [self sendDidCancel];                

        default:
            break;
    }
};   

*/ //上面的代码可以注释掉,就可以了。

谁能帮我弄清楚如何解决 EXC_BAD_ACCESS 问题并在消息发布成功与否时提示最终用户?

提前致谢!


最后上面的代码在真机(iphone 4s ios5.1)上运行,没有注释块代码,太奇怪了,所以如果你也有上述问题的模拟器,我建议你在真机上试试。

苹果的问题是,为什么我们在模拟器和真实设备之间得到不同的结果,这会让开发者抓狂?...

4

1 回答 1

0

这不是答案,但我认为我没有足够的积分来发表评论。

我在我的 Mac 上的带有 SDK 5.1 的 iPhone 模拟器中得到了相同的行为。我建议在这上面写一个 rdar://。

http://bugreport.apple.com

于 2012-05-14T22:46:14.487 回答