2011-12-20 32 views
5

Trong khi MGTwitterEngine hoạt động tốt trên các phiên bản trước của iOS, nó thất bại với EXC_BAD_ACCESS vào lúc này khi tôi cố gắng gửi twit:MGTwitterEngine sụp đổ trong iOS5

[twitter sendUpdate:textToShare]; 

Danh sách cuối cùng của Objective-C mã executer là:

[theRequest prepare]; 

bên trong SA_OAuthTwitterEngine.m. Đây là cuộc gọi ngăn xếp:

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

Bất kỳ ý tưởng nào? Cách giải quyết? Bạn có biết một khung công tác Twitter khác hoạt động tốt với iOS 5 không? Điều duy nhất tôi cần phải làm với nó - đăng twits (với đăng nhập có thể đầu tiên, tất nhiên).

Trả lời

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; 
} 

Sửa đổi hàm SA_OAuthTwitterEngine.m như mô tả ở trên. Về cơ bản, bạn phải cập nhật url oAuth thành https. Một cái gì đó trong iOS5 ngăn không cho nó chuyển hướng đến https từ http

+2

+1 cảm ơn người đàn ông đã giúp tôi – Saawan

1

thêm -all_load cờ trong xây dựng thiết

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

-all_load buộc mối liên kết để tải tất cả các file đối tượng từ mọi lưu trữ nó thấy, ngay cả những người không Mã mục tiêu-C. -force_load có sẵn trong Xcode 3.2 trở lên. Nó cho phép kiểm soát hạt mịn hơn khi tải kho lưu trữ. Mỗi tùy chọn -force_load phải được theo sau bởi một đường dẫn đến một tệp lưu trữ và mọi tệp đối tượng trong lưu trữ đó sẽ được tải.

Các vấn đề liên quan