由于未捕获的异常'NSInvalidArgumentException'而终止应用程序

时间:2010-08-22 17:33:20

标签: iphone objective-c exception-handling sharekit

我正在使用ShareKit允许用户在我的iPhone应用程序中在Twitter和Facebook上分享他们的分数。但是,在分享任何一项服务之后,似乎很快就崩溃了。我收到一条控制台消息,上面写着:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString rangeOfString:options:range:locale:]: nil argument'
*** Call stack at first throw:
(
 0   CoreFoundation                      0x026d6919 __exceptionPreprocess + 185
 1   libobjc.A.dylib                     0x028245de objc_exception_throw + 47
 2   CoreFoundation                      0x0268f078 +[NSException raise:format:arguments:] + 136
 3   CoreFoundation                      0x0268efea +[NSException raise:format:] + 58
 4   Foundation                          0x0008f97b -[NSString rangeOfString:options:range:locale:] + 424
 5   Foundation                          0x0009de16 -[NSString rangeOfString:] + 104
 6   iPhone Typer                        0x00030220 -[SHKOAuthView webView:shouldStartLoadWithRequest:navigationType:] + 151
 7   UIKit                               0x004bb456 -[UIWebView webView:decidePolicyForNavigationAction:request:frame:decisionListener:] + 458
 8   CoreFoundation                      0x0264742d __invoking___ + 29
 9   CoreFoundation                      0x02647301 -[NSInvocation invoke] + 145
 10  WebCore                             0x030940f0 _ZL20HandleDelegateSourcePv + 64
 11  CoreFoundation                      0x026b7d7f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
 12  CoreFoundation                      0x026162cb __CFRunLoopDoSources0 + 571
 13  CoreFoundation                      0x026157c6 __CFRunLoopRun + 470
 14  CoreFoundation                      0x02615280 CFRunLoopRunSpecific + 208
 15  CoreFoundation                      0x026151a1 CFRunLoopRunInMode + 97
 16  GraphicsServices                    0x02e5e2c8 GSEventRunModal + 217
 17  GraphicsServices                    0x02e5e38d GSEventRun + 115
 18  UIKit                               0x00339b58 UIApplicationMain + 1160
 19  iPhone Typer                        0x00002894 main + 102
 20  iPhone Typer                        0x00002825 start + 53
)
terminate called after throwing an instance of 'NSException'

我该如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:3)

在objc_exception_throw上设置断点,然后构建应用程序以进行调试,运行带断点的应用程序并再次导致崩溃,然后将堆栈上移到相关代码。

SHKOAuthView webView中的内容:shouldStartLoadWithRequest:navigationType:将一个nil参数传递给NSString rangeOfString。当你知道传递的是什么时,可能很明显的问题是什么 - 没有用相关代码更新你的问题以及你已经确定的任何额外信息。