2016-04-22 15 views
0

ラベルを表示しようとすると、[NSNull rangeOfCharacterFromSet:]:例外が発生します。エラーが 'NSInvalidArgumentException'私のデータでNSNullを扱うには?

を読み込み、理由:「 - [nsnullを長さ]:以下

は私のコードです。

UILabel* spousename = [[UILabel alloc] initWithFrame:CGRectMake(10,line, 300,20)]; 

[spousename setText:[_thisburial objectForKey:@"Spouse"]]; 

次のコードでヌル文字をテストしようとしましたが、エラーをキャッチしませんでした。 addSuview命令を実行しようとすると爆発しました。

if(![spousename isEqual:nil]) 
{ 
    [self.view addSubview:spousename]; 
} 

は、どのように私は、私はこの[NSNull rangeOfCharacterFromSet:]:エラーメッセージを得ることから防ぐことができますラベルにNSNullをテストできますか?

答えて

1

あなたのデータは実際には「配偶者」の実際の価値を持たず、これは値としてNSNullのインスタンスを格納することによって示されています。これを確認する必要があります。

このライン:

[spousename setText:[_thisburial objectForKey:@"Spouse"]]; 

は値をチェックするために更新する必要があります。このような何か:

id spouse = _thisburial[@"Spouse"]; 
if ([spouse isKindOfClass:[NSString class]]) { 
    spousename.text = spouse; 
} else { 
    // The "spouse" value wasn't set or it's not a string 
    spousename.text = @""; // Set to whatever you want here 
} 
0

[_thisburial objectForKey:@"Spouse"]NSNullを返しています。これには特別な手渡しが必要です。

NSString *spouseString = [_thisburial objectForKey:@"Spouse"]; 
if (spouseString == (id)[NSNull null]) { 
    spouseString = @""; 
} 

[spousename setText:spouseString]; 
+0

ありがとうございます。私はif([spouseString isEqual:[NSNull null]])を使用しなければならず、それがうまくいきました。 – Dave

+0

申し訳ありませんspouseString == [NSNull null]が機能しませんでした。それはnullを認識しませんでした。 – Dave

+0

私はあなたの提案をf([spouseString.text isEqual:[NSNull null]])を使って再度テストしました。重要な問題は、変数にテキストサフィックスを使用していないことでした。 – Dave

関連する問題