发送尝试失败后推特结果错误

时间:2011-11-13 12:01:05

标签: ios twitter ios5

在IOS5中使用TWTweetComposeViewController撰写和发送推文时,如果推文是重复的,则会显示错误提示,说明推文是重复的,无法发送,但TWTweetComposeViewControllerCompletionHandler仍然获得TWTweetComposeViewControllerResultDone而不是TWTweetComposeViewControllerResultCancelled的结果值。

(在其他情况下也可能发生这种情况,不仅仅是针对重复的推文 - 我没有检查过。)

这使得在成功发送后无法向用户显示确认消息,因为无论发送是否成功,处理程序都会获得相同的“完成”结果。

还有另一种检查发送是否真的成功的方法吗?

4 个答案:

答案 0 :(得分:3)

documentation for TWTweetComposeViewController's completionHandler声明如下:

  

处理程序有一个参数,指示用户是否已完成或取消撰写推文。

完成处理程序会告诉您用户是否实际完成或取消了自己编写推文,无论实际发布推文的结果如何。

更新

我进一步了解了这一点,看起来TWTweetComposeViewController就是其中一个便利类,它们剥夺了开发人员的大部分工作,以换取不让开发人员独自处理任何事情。在这种情况下,开发人员无法处理发送推文时发生的错误,并且必须依赖iOS提供的警报对话框来通知用户。

你可以通过使用Saleh的方法解决这个问题,尽管我认为在实际应用中使用它并不安全。请参阅他的回答中的评论。

另一种方法是通过实现自己的视图控制器来处理推文组合和发送。您可以按照以下stackoverflow answer中的步骤执行此操作。

答案 1 :(得分:1)

检查警报消息,如果显示警告消息,您将能够知道发生了错误。我认为警报消息会添加到窗口中。您可以检查窗口子视图的数量,如果在调用委托函数时它们增加,您就会知道发生了错误。

答案 2 :(得分:-1)

它不只是一个视图控制器吗?视图控制器的结果很好,因为它说明了视图控制器发生的事情(完成正在运行)。

你发送的推文是什么?该库很可能有一些实现,您可以用来确定您的推文是否成功发送。

答案 3 :(得分:-1)

    [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
                         {

                         if([urlResponse statusCode]==200)
                             {
//Tweet tweeted successfully....
    }
    }
这可能会对你有所帮助。 作为回应,如果网址响应代码为200,您可以说文字是推特....