在IOS5中使用TWTweetComposeViewController
撰写和发送推文时,如果推文是重复的,则会显示错误提示,说明推文是重复的,无法发送,但TWTweetComposeViewControllerCompletionHandler
仍然获得TWTweetComposeViewControllerResultDone
而不是TWTweetComposeViewControllerResultCancelled
的结果值。
(在其他情况下也可能发生这种情况,不仅仅是针对重复的推文 - 我没有检查过。)
这使得在成功发送后无法向用户显示确认消息,因为无论发送是否成功,处理程序都会获得相同的“完成”结果。
还有另一种检查发送是否真的成功的方法吗?
答案 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,您可以说文字是推特....