0

[NSNull rangeOfCharacterFromSet:]:ラベルを表示しようとすると例外が発生します。エラーは読み取ります

'NSInvalidArgumentException'、理由: '-[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されないようにラベルをテストするにはどうすればよいでしょうか。[NSNull rangeOfCharacterFromSet:]:

4

2 に答える 2

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
}
于 2016-04-22T17:11:31.450 に答える
0

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

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

[spousename setText:spouseString];
于 2016-04-22T17:12:01.433 に答える