好的,所以在 Cordova 2.1 CDVInvokedUrlCommand.m 中有一个函数 -(void)legacyArguments 对 URL 有一定的用途。我的问题是,当变量 _arguments 设置为 nil 时,Cordova 中的代码会调用 legacyArguments,并使应用程序崩溃。尝试检查 _arguments == nil 是否总是返回 false(无论是 nil 还是有值),并且 [_arguments count] 也会使应用程序崩溃。
使应用程序崩溃的行是...
NSMutableArray* newArguments = [NSMutableArray arrayWithArray:_arguments];
现在要修复它,我只需要检查以确保 _arguments 不为零,但我找不到可靠的方法。也许有一种“安全”的方式来进行上述调用,或者有另一种方式来检查 _arguments,如果它为 nil 就不会导致应用程序崩溃?
编辑:因为它被要求......
-[__NSCFConstantString count]: unrecognized selector sent to instance 0x8ee98
2012-09-20 11:04:59.825 EESEmployee[50307:15b03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString count]: unrecognized selector sent to instance 0x8ee98'
*** First throw call stack:
(0xf4c012 0x262de7e 0xfd74bd 0xf3bbbc 0xf3b94e 0x1ad30 0x66dcd 0x665fe 0x669d9 0x26416b0 0x13e0035 0xecff3f 0xecf96f 0xef2734 0xef1f44 0xef1e1b 0x314a7e3 0x314a668 0xd165c 0x2ce6 0x2c15)
libc++abi.dylib: terminate called throwing an exception