RLMException - '二进制太大'

时间:2015-10-20 22:06:12

标签: realm

我正在尝试将Realm对象(事件)保存到领域数据库,但是当我尝试将其崩溃时说明:

Terminating app due to uncaught exception 'RLMException', reason: 'Binary too big'
*** First throw call stack:
(0x185c08f5c 0x19a70ff80 0x1004d0d40 0x1004cf850 0x1004fc718 0x1004d1514 0x1004cfc0c 0x1004fc718 0x100960634 0x100047584 0x100962888 0x1005b9244 0x100960100 0x100043750 0x1000438cc 0x18b1963c8 0x18b196344 0x18b17ec6c 0x18b195c5c 0x18b150bdc 0x18b18f548 0x18b18eaac 0x18b15fa10 0x18b15defc 0x185bc05a4 0x185bc0038 0x185bbdd38 0x185aecdc0 0x190c40088 0x18b1c6f44 0x10003cee8 0x19af3a8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

我试着像这样保存它:

try! realm.write{
                self.realm.add(self.theEvent)
            }

我的事件对象在这些方面看起来很像:

class Event: Object {
dynamic var title: String = ""
dynamic var image: NSData = NSData()
let items = List<Item>()
}

物品基本上只是另一个存储一张照片的物品。

我很困惑为什么试图只保存2张照片(列表中的1个项目加上事件的图像)导致领域声称它超过16MB。

谢谢!

1 个答案:

答案 0 :(得分:7)

根据您对图像数据进行序列化的方式(例如,如果它是无损位图),这些数据很可能超过16MB,正如您所说的那样是Realm对二进制属性支持的最大大小。

当您调用NSData.length时,您的数据有多大?