0

よし、Cordova 2.1 CDVInvokedUrlCommand.m には、URL で何らかの目的を持つ関数 -(void)legacyArguments があります。私の問題は、変数 _arguments が nil に設定されているときに Cordova のコードが legacyArguments を呼び出し、アプリをクラッシュさせることです。_arguments == nil が常に false を返し (nil であるか値があるか)、[_arguments count] がアプリをクラッシュさせるかどうかを確認してください。

アプリをクラッシュさせる行は...

NSMutableArray* newArguments = [NSMutableArray arrayWithArray:_arguments];

今のところ修正するには、_arguments が nil でないことを確認する必要がありますが、信頼できる方法が見つかりません。おそらく、上記の呼び出しを行う「安全な」方法や、nil の場合にアプリをクラッシュさせない _arguments をチェックする別の方法がありますか?

編集:リクエストされたので...

-[__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
4

2 に答える 2

0

新しいコマンドと古いコマンドの使用法は何ですか? 私は...

-(void)getToken:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options

これに...

-(void)getToken:(CDVinvokedUrlCommand*)command

次に、コールバック ID を設定します

self.callbackID = [arguments pop];

今は引数を使用していないので、callbackID はどこにありますか?

于 2012-09-28T17:39:36.357 に答える
0

このエラーが発生した場合は、CDVInvokedUrlCommand にチェックを追加することでデバッグを続行できますが、問題を「修正」するには、こちらの手順に従ってCordova/Phonegap プロジェクトのプラグインを 2.1 にアップグレードする必要があります。

個人的には、チェックインを残して、不正なメッセージを受信した場合にメッセージを表示するようにします (情報を提供せずにアプリ全体をシャットダウンするのではなく)。

于 2012-09-20T19:13:14.943 に答える