Realm documentation site上的Realm迁移示例显示了一个带有新NSString
对象的示例。这个例子很简单,也很好解释。
if (oldSchemaVersion < 2) {
newObject[@"email"] = @""; // creates an NSString object...
}
但是除NSString
以外的其他对象呢?为了创建这些其他数据类型的对象,需要如何调整代码片段?
NSDate
NSData
RLMArray
NSInteger
,int
double
,float
,CGFloat
long
bool
,BOOL
答案 0 :(得分:3)
ObjC / Cocoa中只有某些类型的对象具有这样的文字快捷方式。 (从历史上看,NSString
实际上是具有此类语法的 sole 类,但有几个是added recently-ish by the Clang compiler。)
NSDate
,NSData
或RLMArray
没有字面语法;这些需要用适当的构造方法创建。
double
,long
和BOOL
等原始类型无法直接存储在NSDictionary
中,但可以使用“糖”{{1 ,即:
@()
这会将值放入newObject[@"numFrobs"] = @(anInteger);
实例,然后需要将其解包以检索原始值:
NSNumber
答案 1 :(得分:-1)
考虑它的最好方法就是在代码中在内存中创建一个Object。 @“”是NSString的缩写形式,但您也可以使用[NSString stringWithFormat:@“”]