2011-12-20 12 views
5

Mientras MGTwitterEngine funciona bien en las versiones anteriores de iOS, no pudo con EXC_BAD_ACCESS en el momento en el que tratar de publicar tuit:MGTwitterEngine accidente en IOS5

[twitter sendUpdate:textToShare]; 

La última lista de código de Objective-C ejecutor es:

[theRequest prepare]; 

dentro SA_OAuthTwitterEngine.m. Esta es la pila de llamadas:

#1 0x00045a63 in -[OAMutableURLRequest URLEncodedString:] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:287 
#2 0x000445fa in -[OAMutableURLRequest prepare] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:131 
#3 0x00041778 in -[SA_OAuthTwitterEngine _sendRequestWithMethod:path:queryParameters:body:requestType:responseType:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/SAOAuthTwitterEngine/SA_OAuthTwitterEngine.m:325 
#4 0x000356b1 in -[MGTwitterEngine sendUpdate:inReplyTo:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/MGTwitterEngine/MGTwitterEngine.m:1037 
#5 0x0003546c in -[MGTwitterEngine sendUpdate:]() 
#6 0x00023ae7 in -[SocialNetworking twitterShare]() 
#7 0x00023c2b in -[SocialNetworking OAuthTwitterController:authenticatedWithUsername:]() 
#8 0x0003d0d5 in -[SA_OAuthTwitterController gotPin:]() 
#9 0x0003eabb in -[SA_OAuthTwitterController webViewDidFinishLoad:]() 
#10 0x0051736a in -[UIWebView webView:didFinishLoadForFrame:]() 
#11 0x00518956 in -[UIWebViewWebViewDelegate webView:didFinishLoadForFrame:]() 
#12 0x01ced51d in __invoking___() 
#13 0x01ced437 in -[NSInvocation invoke]() 
#14 0x01d1849a in -[NSInvocation invokeWithTarget:]() 
#15 0x04f09aff in -[_WebSafeForwarder forwardInvocation:]() 
#16 0x01cee0c9 in ___forwarding___() 
#17 0x01cedce2 in __forwarding_prep_0___() 
#18 0x01ced51d in __invoking___() 
#19 0x01ced437 in -[NSInvocation invoke]() 
#20 0x05aa9ae3 in SendMessage(NSInvocation*)() 
#21 0x05aaa115 in HandleDelegateSource(void*)() 
#22 0x01d5b97f in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__() 
#23 0x01cbeb73 in __CFRunLoopDoSources0() 
#24 0x01cbe454 in __CFRunLoopRun() 
#25 0x01cbddb4 in CFRunLoopRunSpecific() 
#26 0x01cbdccb in CFRunLoopRunInMode() 
#27 0x02ee1879 in GSEventRunModal() 
#28 0x02ee193e in GSEventRun() 
#29 0x00360a9b in UIApplicationMain() 
#30 0x00001d3a in main() 

¿Alguna idea? ¿Solución alternativa? ¿Conoces otro framework de Twitter que funcione bien con iOS 5? Lo único que tengo que hacer es publicar post twits (con un posible inicio de sesión primero, por supuesto).

Respuesta

15
- (SA_OAuthTwitterEngine *) initOAuthWithDelegate: (NSObject *) delegate { 
    if (self = (id) [super initWithDelegate: delegate]) { 
     self.requestTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/request_token"]; 
     self.accessTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/access_token"]; 
     self.authorizeURL = [NSURL URLWithString: @"https://twitter.com/oauth/authorize"]; 
    } 
    return self; 
} 

Modifique la función SA_OAuthTwitterEngine.m como se describe arriba. Básicamente, debe actualizar las URL de oAuth a https. Algo en IOS5 le impide volver a dirigir a https http

+2

+1 gracias hombre me ayudó – Saawan

1

agregar el indicador de -all_load en la estructura Ajuste

https://developer.apple.com/library/mac/#qa/qa2006/qa1490.html

-all_load obliga al enlazador para cargar todos los archivos objeto desde todos los archivarlo ve, incluso los que no tienen Código Objective-C -force_load está disponible en Xcode 3.2 y versiones posteriores. Permite un control del grano más fino de la carga del archivo. Cada opción -force_load debe ir seguida de una ruta a un archivo, y cada archivo de objeto en ese archivo se cargará.