这个问题是关于使用两种不同的方法将对象插入Realm.我注意到第一种方法要快得多,但与第二种方法相比,尺寸结果是巨大的.两种方法之间的差异是将写入事务移到外部和for循环内部.
// Create realm file
let realm = try! Realm(fileURL: banco_url!)
Run Code Online (Sandbox Code Playgroud)
当我添加这样的对象时,Realm文件增长到75.5MB:
try! realm.write {
for i in 1...40000 {
let new_realm_obj = realm_obj(value: ["id" : incrementID(),
"a": "123",
"b": 12.12,
"c": 66,
"d": 13.13,
"e": 0.6,
"f": "01100110",
"g": DateTime,
"h": 3])
realm.add(new_realm_obj)
print(" \(i) Added")
}
}
Run Code Online (Sandbox Code Playgroud)
当我添加这样的对象时,Realm文件只增长到5.5MB:
for i in 1...40000 {
let new_realm_obj = realm_obj(value: ["id" : incrementID(),
"a": "123",
"b": 12.12,
"c": 66,
"d": 13.13,
"e": 0.6,
"f": "01100110",
"g": DateTime,
"h": 3]) …Run Code Online (Sandbox Code Playgroud) 我有这个函数接受Double值,将其转换为货币格式并返回格式为R $的字符串:1.200,30.
func convert_Value(valor: Double) ->String {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "pt_BR")
return ("\(formatter.stringFromNumber(valor))")
}
Run Code Online (Sandbox Code Playgroud)
此函数没有声明任何可选变量,但是当我使用以下方法调用它时:
x = convert_Value(1200.30)
Run Code Online (Sandbox Code Playgroud)
它返回:
Optional("R$1.200,30")
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我需要做什么,因为它不是可选的我不能使用惊叹号打开可选项.我试图将函数中的Double和String参数转换为Optional,然后解包,但可选的stills显示.