RLMException - 'Binary too big'

RLMException - 'Binary too big'

我正在尝试将一个领域对象(事件)保存到领域数据库,但是当我尝试保存时它崩溃了并指出:

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。

谢谢!

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

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