0

Realm ドキュメント サイトの Realm migration example は、新しいNSStringオブジェクトの例を示しています。例は簡単で、よく説明されています。

if (oldSchemaVersion < 2) {
    newObject[@"email"] = @"";  // creates an NSString object...
}

しかし、 以外のオブジェクトはNSStringどうでしょうか? これらの他のデータ型のオブジェクトを作成するには、コード スニペットをどのように変更する必要がありますか?

  • NSDate
  • NSData
  • RLMArray
  • NSIntegerint
  • doublefloatCGFloat
  • long
  • boolBOOL
4

2 に答える 2

3

ObjC/Cocoa の特定のタイプのオブジェクトだけが、このような文字通りのショートカットを持っています。(歴史的にNSStringは、実際にはそのような構文を持つ唯一のクラスでしたが、いくつかは最近 Clang コンパイラによって追加されました。)

NSDateNSData、またはRLMArray;のリテラル構文はありません。これらは、適切な構築方法で作成する必要があります。

doublelong、 などのプリミティブ型は、 にBOOL直接格納することはできませんがNSDictionary、「シュガー」を使用してラップすることができます@()

newObject[@"numFrobs"] = @(anInteger);

これにより、値がインスタンスに入れられNSNumberます。次に、プリミティブ値を取得するためにアンラップする必要があります。

NSInteger numFrobs = [newObject[@"numFrobs"] integerValue];
于 2014-12-28T20:23:05.487 に答える