答えて
これを修正する方法は、NSNullオブジェクトに対してobjectForKeyedSubscriptを試行しないことです。 (私はあなたには、いくつかのJSONデータを扱うているとNULL値のために準備されていない賭けている。)
(どうやらobjectForKeyedSubscript新しいアレイ[x]は表記はに変換するものである。)
(注)
無効なキーを持つ辞書にアクセスすると、この例外がスローされますか? – Boon
@Boon No.これは 'nil'を返します。これはNSNullとはまったく異なります。 –
@Boon - マイクDによると、無効なキーを辞書で使用すると、例外なくnilが返されます。配列の無効なインデックスは例外をスローしますが、 "認識できないセレクタ"ではなくNSRangeExceptionです。しかし、NSStringやNSViewなどの配列以外の辞書オブジェクトを「索引付け」しようとすると、「認識されないセレクタ」が表示されます。これは、指定されたクラスがサポートしていないという一般的なエラーです指定されたメソッド –
実行時に、NSNull
を格納していて、後でobjectForKeyedSubscript
を呼び出そうとしたときに、エディタがあなたに指示する値にもかかわらず、格納する価値は何ですか。私はNSDictionary
であると予想されることについてこれが起こっていると推測しています。
NSString *str = dict[@"SomeKey"]
事前にコードの一部は、その仕事をして、そこに調査されていないか、またはいくつかの検証を実行します:ようないくつかの事
NSDictionary *dict = ...;
if ([dict isKindOfClass:[NSDictionary class]]) {
// handle the dictionary
}
else {
// some kind of error, handle appropriately
}
は、私は頻繁に扱うシナリオのこの種を持っていますネットワーク操作からのエラーメッセージ。
NSNullにカテゴリを追加して、添え字を期待するのと同じ方法でこれを処理することをお勧めします。このNSNullをテストするには、==
を[NSNull null]
と単純に比較するだけです。それがnilに送られた場合は処理されるように呼び出す。
@implementation NSNull (Additions)
- (NSObject*)objectForKeyedSubscript:(id<NSCopying>)key {
return nil;
}
- (NSObject*)objectAtIndexedSubscript:(NSUInteger)idx {
return nil;
}
@end
テストへの簡単な方法は、このようなものです:このカテゴリーに
id n = [NSNull null];
n[@""];
n[0];
、このテストが成功した/そっと処理する必要があります。
- 1. - [__ NSCFNumber objectForKeyedSubscript:]:インスタンスに送信された認識されないセレクタ
- 2. は - [nsnullを_isNaturallyRTL]:未認識セレクタは私が知っているインスタンスに0x20dfcd8
- 3. は私がSSRSでデータセットを作成しようとしていますが、私は私が使用しているクエリがようである、</p> <p><code>The OVER SQL construct or statement is not supported.</code></p> <p>を言って、エラーを取得していたとのクエリを持ってSSRS
- 4. 私は、それはperlの</p> <p>私がいたを使用して行うことができますどのように</p> <pre><code>String sql = Query1; </code></pre> <p>のようにそれを交換したい行</p> <pre><code>String sql="select * from "+ "emp_data"; </code></pre> <p>のように私が持っている私のファイルでのPerl
- 5. C#Compact Frameworkでは、私は<strong>Compact Frameworkの2.0 SP1</strong>にdevolpingていると私は<strong>Math.Sinh</strong>を使用しようとすると、私ならば、それは<em>サポートされていない例外</em></p> <p>私をスローMath.Sinh
- 6. tr:ホバーのボーダー半径を<tr>にするには?私は私がしたいことはある、それは<code><table></code>が含まれている大きな<code><div class="content"></code>を持って
- 7. は、私は、このLinuxのコマンドは、私はそれが<strong>OD -c</strong>に<strong>LS</strong>を送信しています知っている</p> <pre><code>ls | od -c </code></pre> <p>を行うかを理解しようとしている
- 8. ジャンゴ:名前は、私は、カスタム・ユーザー・モデルを設定しようとしているが、メンバー</p> <p><code>ImportError at /members/login/ cannot import name check_password </code></p> <p>を認証しようとしたとき、私は私が知っている私のログインページに次のエラーを取得しています
- 9. [NSNull isEqualToString:]:インスタンスに送信された認識できないセレクタ
- 10. RAPT:私のJDKには何が間違っていますか?</p> <pre><code>python android.py installsdk </code></pre> <p>それは通常返します:質問は、私はいくつかのトラブルのコマンドを実行するためにうっとりを得る持って言うよう
- 11. エラー:</p> <blockquote> <p>Cannot assign to immutable expression of type <code>UITableViewCel.type</code></p> </blockquote> <p>私はto-doリストアプリを作成しようとしている:私はエラーを取得しています
- 12. は私が<strong><em>ステータス</em></strong>を選択しようとしているセレン
- 13. は、これは私です</p> <pre><code>'[errors]' => [], </code></pre> <p>..私は、ユーザーテーブルを持っていると私は私が<code>$user</code>をデバッグする場合でも、それはnullを返し<code>save()</code>保存したいときにエラーがないCakePhp3
- 14. 注入サービス私はコンポーネントにサービスを注入しようとしていると私はサービスが注入されていないことを理解として、私は次のようなメッセージ</p> <blockquote> <p>EXCEPTION: TypeError: Cannot read property 'getDemoString' of undefined</p> </blockquote> <p>を得る例外
- 15. は、私はそれが遠征ルートのためにあるように、私はそれをしたい私は</p> <ol> <li>content1</li> <li>content2</li> <li>content3</li> </ol> <p>のような順序付きリストを持っている
- 16. PGTとPGTIOUの保存CASが生成する
- 17. 私は<strong>のHashMap</strong>に<strong>キー(restaurant_id)</strong>と<strong>値(ORDER_ID)</strong>を追加しようとしています
- 18. ファイルリダイレクトVS.</p> <pre><code>while(<>){ print; } </code></pre> <p>と私はこのようにリダイレクトしてファイルに渡す必要があります考えています:<code>./sort.pl < wordlist</code>を、それが持っている私はそうのようないくつかのファイルからSTDINにかかる<code>sort.pl</code>という名前のperlスクリプトを持って
- 19. アンマーシャリングでJSONオブジェクトは、私が.jsonファイルが同じキー</p> <pre><code>"gauge1":{ "name":"someName", "name":"someName1" } </code></pre> <p>の倍数を持っているかどうかを確認しようとしている同じキー
- 20. Iはそれぞれに名前しようとしている</p> <blockquote> <p>VARテスト= [{...}、{...}、{...}]</p> </blockquote> <p>以下のように、私は変数を以下ているネストされたオブジェクトに
- 21. 認識されていないセレクタはインスタンスに送信 - 私は単にコードの<strong>ハイライト</strong>ラインに<code>TableView</code>の<code>cell</code>に<code>NSMutableArray</code>を充填することによって、このエラーを取得してい分析
- 22. これはラムダですか?そうでない場合は何ですか?</p> <pre><code>Linq.From(Emp).Where(Emp['Sal'] > 1000) </code></pre> <p>はそれが私を覚ますと言うようになった:
- 23. ノードメーラーエラー:未登録<br>として偽とrejectUnauthorized:私は、セキュアすでに<br><br> 1のようなサイトに掲載されているすべてのソリューション)smtp.gmail.com <br><br> 2としてホストの宣言を)試したECONNREFUSED
- 24. オーバーライドされた<<演算子が認識されない
- 25. iPhoneが振動してください:私はバイブレーションiPhoneを作りたいと私はコード</p> <pre><code>AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); </code></pre> <p>が、Xcodeの4.3.2レポートのエラー見つけAudioServicesPlaySystemSound(kSystemSoundID_Vibrate)宣言されていない
- 26. は、私がはまって</p> <p>に私は</p> <p>をオンにしたい、私は「ピーナッツ」と「ココア」にはまってsmartquotes
- 27. は、私がそう<code>stroke</code>として知られている私は私の<code>textblock</code>アウトライン(<em>ない</em>のTextBlock、<em>文字</em>自分自身を)与えたい<code>Silverlight</code>アプリを、持っているXAML
- 28. Shorcut StandardKey.PreviousChildは私が<kbd>Ctrlキー+</kbd><kbd>Shiftキー</kbd> + <kbd>タブ</kbd>ショートカットをしようとしている、それが動作していないのLinux
- 29. Mechanizeのは、私は、Microsoftのアカウントにログインしようとしたが、それはworkL</p> <pre><code>br.open(https://login.live.com/) </code></pre> <p>応答は次のようなものが含まれていないクッキー
- 30. は、どのように私は私が持っている持っている<code>NSMutablearray</code>は4つのオブジェクトを言う複数の値
見つけやすいでしょう。どこに添え字を付けていますか? – CodaFi
あなたは何か他のことを期待していたNSNullを持っているようです。いくつかのコードは、人々がこれを理解するのを助けるでしょう。 –
これを修正する方法は、NSNullオブジェクトに対してobjectForKeyedSubscriptを試行しないことです。 (私はいくつかのJSONデータを処理していて、NULL値の準備はできていないと確信しています) –