0

「欠落」を表すマジックナンバー(0または-1など)を持たNSNumberずに、デフォルトなしでオプションにしたいということがあります。すなわち。データベースでは、その値を数値または null にする必要があります。問題なく null で始まりますが、数値を取得したら、どうすればそれを「欠落」にリセットできますか?

私が試してみました:

  1. myAttribute = nil;
  2. myAttribute = [NSNull null];
  3. [self setValue:[NSNull null] forKey:@"myAttribute"];
  4. [self setPrimitiveValue:[NSNull null] forKey:@"myAttribute"];

最初のものはクラッシュしませんが、コア データ属性を nil に設定することは、フェッチされていないことを効果的に示していることを理解しています。したがって、更新されません。残りの 3 つはクラッシュします。

NSNumber多くの推奨事項は、常に数字を含める必要があることを示唆しているため、これが答えになるとは思っていません。これを乗り越えるために、NSString. NULL空の文字列ではなく、コア データをデータベースに保存するにはどうすればよいですか?

4

1 に答える 1

0

オプションの属性の値を に設定できますがnil、問題はありません。

self.myAttribute = nil;
[self setValue:nil forKey:@"myAttribute"];

どちらも機能します。は番号ではないため、コール 2、3、4 は失敗しNSNullます。

于 2013-02-27T09:54:04.480 に答える