0

MySQL データベースをセットアップし、JSON を XCode プロジェクトに解析しました。ただし、THREAD 1: signal SIGABRT以下の 4 行目でエラーが発生します。これは、データベース内の「場所」変数の 1 つが null 値であることが原因だと思います。これが理由ですか?もしそうなら、どうすればnull値を無視してラベルを空白のままにすることができますか? お時間をいただきありがとうございます。

UILabel *event = (UILabel *)[cell viewWithTag:102];
event.text = [dict objectForKey:@"event"];

UILabel *location = (UILabel *)[cell viewWithTag:103];
location.text = [dict objectForKey:@"location"];
4

1 に答える 1

0

null 値が問題になる可能性は低いと思います ( aniltextプロパティを使用UILabelしてテキストを削除できるため)。問題は次のいずれかであると思われます。

  1. [dict objectForKey:@"location"]などの文字列以外の何かを返すことができるのだろうかNSDictionary? この値をNSLog(またはブレークポイントを設定して、そこでこの値を調べて) 確認します。または、以下のNSAssertようなものを入れてください。

  2. 可能性は低いですが、 のタグが付いたサブビュー103は本当にUILabel? locationデバッガーでオブジェクトを調べて確認します。ただし、 のタグが付いたビューが で103ないUILabel場合、エラーが発生する可能性があります。

したがって、おそらく次のようなものです:

UILabel *location = (UILabel *)[cell viewWithTag:103];
NSAssert([location isKindOfClass:[UILabel class]], @"%s: view with tag 103 is not UILabel: %@", __FUNCTION__, location);
NSString *locationString = [dict objectForKey:@"location"];
NSAssert(locationString == nil || [locationString isKindOfClass:[NSString class]], @"locationString is not nil but not string either: locationString = %@", locationString);
location.text = locationString;
于 2013-08-04T17:26:14.987 に答える