Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
194 views
in Technique[技术] by (71.8m points)

exc bad access - MGTwitterEngine crash in iOS5

While MGTwitterEngine works well on previous versions of iOS, it failed with EXC_BAD_ACCESS at moment when I try to post twit:

[twitter sendUpdate:textToShare];

The last list of Objective-C code executer is:

[theRequest prepare];

inside SA_OAuthTwitterEngine.m. This is call stack:

#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 ()

Any ideas? Workaround? Do you know another Twitter framework which works well with iOS 5? The only thing I need to do with it - post twits (with possible login first, of course).

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
- (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;
}

Modify SA_OAuthTwitterEngine.m function as described above. You basically have to update the oAuth urls to https. Something in iOS5 prevents it from redirecting to https from http


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...