2

我的应用程序使用 Facebook 身份验证。如果设备上没有安装 Facebook 应用程序,它可以正常工作,如果用户未登录 Facebook 应用程序,它也适用于具有 Facebook 应用程序的设备。但是,如果用户已经登录到 Facebook 应用程序,我的应用程序会显示登录页面两到三秒钟并通过说

 -[SBJsonParser errorTrace]: unrecognized selector sent to instance 0x48ad90

崩溃日志显示异常类型:EXC_CRASH (SIGTRAP) 任何人请帮忙?

Stack Trace: (
    0   CoreFoundation                      0x37aae8d7 __exceptionPreprocess + 186
    1   libobjc.A.dylib                     0x315941e5 objc_exception_throw + 32
    2   CoreFoundation                      0x37ab1acb -[NSObject doesNotRecognizeSelector:] + 174
    3   CoreFoundation                      0x37ab0945 ___forwarding___ + 300
    4   CoreFoundation                      0x37a0b680 _CF_forwarding_prep_0 + 48
    5   MyFbApp                            0x0014bf83 -[SBJSON objectWithString:allowScalar:error:] + 118
    6   MyFbApp                            0x0014bffb -[SBJSON objectWithString:error:] + 26
    7   MyFbApp                            0x0015030b -[FBRequestConnection parseJSONOrOtherwise:error:] + 94
    8   MyFbApp                            0x0014ff19 -[FBRequestConnection parseJSONResponse:error:statusCode:] + 100
    9   MyFbApp                            0x0014fcbb -[FBRequestConnection completeWithResponse:data:orError:] + 566
    10  MyFbApp                            0x0014e08f __68-[FBRequestConnection startWithCacheIdentity:skipRoundtripIfCached:]_block_invoke_0 + 174
    11  MyFbApp                            0x00151acf -[FBURLConnection invokeHandler:error:response:responseData:] + 482
    12  MyFbApp                            0x0015202b -[FBURLConnection connectionDidFinishLoading:] + 298
    13  Foundation                          0x31a0ac39 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 16
    14  Foundation                          0x319626e9 -[NSURLConnectionInternalConnection invokeForDelegate:] + 28
    15  Foundation                          0x319626b3 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 198
    16  Foundation                          0x319625d5 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 60
    17  CFNetwork                           0x36f8f8a5 _ZN19URLConnectionClient23_clientDidFinishLoadingEPNS_26ClientConnectionEventQueueE + 192
    18  CFNetwork                           0x36f84545 _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 424
    19  CFNetwork                           0x36f84243 _ZN19URLConnectionClient13processEventsEv + 106
    20  CFNetwork                           0x36f84179 _ZN17MultiplexerSource7performEv + 156
    21  CoreFoundation                      0x37a82b03 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
    22  CoreFoundation                      0x37a822cf __CFRunLoopDoSources0 + 214
    23  CoreFoundation                      0x37a81075 __CFRunLoopRun + 652
    24  CoreFoundation                      0x37a044dd CFRunLoopRunSpecific + 300
    25  CoreFoundation                      0x37a043a5 CFRunLoopRunInMode + 104
    26  GraphicsServices                    0x37582fcd GSEventRunModal + 156
    27  UIKit                               0x34e94743 UIApplicationMain + 1090
    28  MyFbApp                            0x0007512d main + 236
    29  MyFbApp                            0x0007503c start + 40
)
4

2 回答 2

13

最后我通过添加解决了我的问题

-(id) errorTrace{
    return [NSArray arrayWithObjects:@"error1", nil];
}

在 SBJsonParser 中。我不知道它是如何工作的。

感谢上帝>>>>>>>>>>

如需进一步参考http://developers.facebook.com/bugs/202230616574138/

于 2012-09-07T09:33:37.497 回答
2

我不熟悉 Facebook 身份验证,但这里可能会发生两件事:

  • 要么您向已在内存中被对象替换的已释放对象发送了 errorTrace: 消息SBJsonParser
  • 或者您向您的SBJsonParser对象发送了无效消息

我建议两件事:

  1. 添加 NSZombieEnabled 标志以查看您是否错误地释放了对象
  2. 在您使用 SBJsonParser 的地方发布代码,希望它不是在外部源代码或库中创建的
于 2012-09-06T14:12:39.553 回答