¿La API de Twitter iOS proporciona alguna forma de determinar si el tweet fue exitoso?

Estoy usando el siguiente fragment de código para crear un tweet en mi aplicación iOS 5:

- (IBAction)postToTwitterClicked:(id)sender { if ([TWTweetComposeViewController canSendTweet]) { TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc]init]; [tweetSheet setInitialText:@"Some sample message here"]; [tweetSheet addURL:[NSURL URLWithString:@"http://myURL"]]; [self presentModalViewController:tweetSheet animated:YES]; } else { UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Unable to tweet" message:@"Please ensure that you have at least one twitter account setup and have internet connectivity. You can setup a twitter account in the iOS Settings > Twitter > login." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [av show]; } } 

Esto funciona bien, pero ¿cómo sé que el usuario realmente publicó un tweet o si hubo un problema?

Como esto no implementa un delegado, no hay methods "onError" que pueda anular.

Quiero saber si el usuario publicó correctamente un tweet, por lo que puedo actuar de alguna manera, como

  1. Deshabilitar un button para que no puedan hacerlo de nuevo
  2. Notifíqueles que la publicación fue exitosa y que aparecerá en su feed en breve.

No hay forma de que en la API Twitter de iOS se pueda ver que un Tweet haya sido publicado en el server. Pero puede analizar TWTweetComposeViewControllerResult para ver si el tweet terminó de componer correctamente o si se canceló el tweet.

 twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) { if (res == TWTweetComposeViewControllerResultDone) { // Composed } else if (res == TWTweetComposeViewControllerResultCancelled) { // Cancelled } [self dismissModalViewControllerAnimated:YES]; }; 

Bueno, en realidad, solo puedes configurar un controller para llamar cuando el usuario haya terminado de networkingactar el tuit: TWTweetComposeViewControllerCompletionHandler . Este manejador tiene un único parámetro que indica si el usuario finalizó o canceló la composition del tweet.

Puedes intentar enviar un tweet y hacer que no se compruebe el código del resultado (por suerte se cancela).

Otra alternativa para lograr el comportamiento deseado es utilizar otra API.