在ios中尝试连接twitter时应用程序崩溃

在ios中尝试连接twitter时应用程序崩溃,ios,twitter-oauth,sharekit,Ios,Twitter Oauth,Sharekit,在我的iPhone应用程序中,我正在使用ShareKit实现twitter共享功能。当我试图在设备中通过twitter共享时,该应用程序正在崩溃 - (void)connectionDidFinishLoading:(NSURLConnection *)aConnection 我得到了错误信息 NSInvalidArgumentException, [NSCFType tokenRequestTicket:didFinishWithData]: 但它在模拟器上运行良好。我以前在另一个应用程序

在我的iPhone应用程序中,我正在使用ShareKit实现twitter共享功能。当我试图在设备中通过twitter共享时,该应用程序正在崩溃

- (void)connectionDidFinishLoading:(NSURLConnection *)aConnection
我得到了错误信息

NSInvalidArgumentException, [NSCFType tokenRequestTicket:didFinishWithData]:
但它在模拟器上运行良好。我以前在另一个应用程序中使用了相同的代码,没有任何更改,它仍然运行良好。该问题仅在新创建的应用程序中存在

请帮忙,如果有人需要更多的细节,请告诉我

更新 这些方法称为

 - (void)tokenRequest
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ShareStarted" object:nil];
    [[SHKActivityIndicator currentIndicator] displayActivity:SHKLocalizedString(@"Connecting...")];
    NSLog(@"Url: %@\n Token: %@ \n Consumer: %@\n Key: %@",requestURL, requestToken, consumer, consumerKey);
    OAMutableURLRequest *oRequest = [[OAMutableURLRequest alloc] initWithURL:requestURL
                                                                   consumer:consumer
                                                                      token:nil   // we don't have a Token yet
                                                                      realm:nil   // our service provider doesn't specify a realm
                                                           signatureProvider:signatureProvider];


    [oRequest setHTTPMethod:@"POST"];

    [self tokenRequestModifyRequest:oRequest];

    OAAsynchronousDataFetcher *fetcher = [OAAsynchronousDataFetcher asynchronousFetcherWithRequest:oRequest
                         delegate:self
                didFinishSelector:@selector(tokenRequestTicket:didFinishWithData:)
                  didFailSelector:@selector(tokenRequestTicket:didFailWithError:)];
    [fetcher start];    
    [oRequest release];
}

- (void)tokenRequestTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data 
{
    if (SHKDebugShowLogs) // check so we don't have to alloc the string with the data if we aren't logging
        SHKLog(@"tokenRequestTicket Response Body: %@", [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]);

    [[SHKActivityIndicator currentIndicator] hide];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SharingCancel" object:nil];
    if (ticket.didSucceed) 
    {
        NSString *responseBody = [[NSString alloc] initWithData:data
                                                       encoding:NSUTF8StringEncoding];
        OAToken *aToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
        [responseBody release];
        self.requestToken =  aToken;
        [aToken release];       

        [self tokenAuthorize];
    }

    else
        // TODO - better error handling here
        [self tokenRequestTicket:ticket didFailWithError:[SHK error:SHKLocalizedString(@"There was a problem requesting authorization from %@", [self sharerTitle])]];
}
更新 错误点

libobjc.A.dylib`objc_msgSend:
0x360a25a0:  teq.w  r0, #0
0x360a25a4:  beq    0x360a25e6                ; objc_msgSend + 70
0x360a25a6:  push.w {r3, r4}
0x360a25aa:  ldr    r4, [r0]
0x360a25ac:  lsr.w  r9, r1, #2
0x360a25b0:  ldr    r3, [r4, #8]
0x360a25b2:  add.w  r3, r3, #8
0x360a25b6:  ldr    r12, [r3, #-8]
0x360a25ba:  and.w  r9, r9, r12
0x360a25be:  ldr.w  r4, [r3, r9, lsl #2]   //here EXC_BAD_ACCESS happened
0x360a25c2:  teq.w  r4, #0
0x360a25c6:  add.w  r9, r9, #1
0x360a25ca:  beq    0x360a25e0                ; objc_msgSend + 64
0x360a25cc:  ldr.w  r12, [r4]
0x360a25d0:  teq.w  r1, r12
0x360a25d4:  bne    0x360a25b6                ; objc_msgSend + 22
0x360a25d6:  ldr.w  r12, [r4, #8]
0x360a25da:  pop.w  {r3, r4}
0x360a25de:  bx     r12
0x360a25e0:  pop.w  {r3, r4}
0x360a25e4:  b      0x360a2600                ; objc_msgSend_uncached
0x360a25e6:  mov.w  r1, #0
0x360a25ea:  bx     lr
0x360a25ec:  nop    
0x360a25ee:  nop    
0x360a25f0:  nop    
0x360a25f2:  nop    
0x360a25f4:  nop    
0x360a25f6:  nop    
0x360a25f8:  nop    
0x360a25fa:  nop    
0x360a25fc:  nop    
0x360a25fe:  nop    

ShareKit
将尝试使用导航控制器堆栈
查找
您的
根视图控制器
,然后从那里
pop
a
模式视图控制器
。当它找不到一个
错误时,它抛出这个
错误

您可以通过使用以下调用手动设置
根视图控制器
更正

[SHK setRootViewController:myViewController];

检查。

提供有关如何执行-(void)ConnectiondFinishLoading:(NSURLConnection*)A连接的更多信息…我添加了一些代码,请检查。我尝试使用链接答案中的[SHK setRootViewController:myViewController],但仍然存在相同的错误。而且它在模拟器中工作正常,问题只出现在设备中。我尝试了[SHK setRootViewController:self];仍然没有帮助。我已经更新了问题的更多细节,请检查。