内存错误,但仅限运行ios 8的设备

时间:2016-06-28 19:12:54

标签: realm

我在iPhone 4 iOS 8.3上运行的应用程序出现此错误:

  

2016-06-26 19:09:22.587 Skyline Flora [4498:949043] ***终止应用   由于未捕获的异常'RLMException',原因:'mmap()失败:   无法分配内存大小:671088640 offset:0'

     

***首先抛出调用堆栈:

     

(0x29cd5d67 0x37534c77 0x2318db 0x211d03 0x21231b 0x212c41 0x2113fd   0x15354f 0x153133 0x152fbf 0xbea6b 0x2d17a705 0x2d2245a5 0x2d2244cd   0x2d223a51 0x2d22378b 0x2d2234f1 0x2d223489 0x2d177c1f 0x2cba2f65   0x2cb9e951 0x2cb9e7d9 0x2cb9e1c7 0x2cb9dfd1 0x2d3dba5d 0x2d3dc7f5   0x2d3e6c39 0x2d3dac2b 0x304470e1 0x29c9c60d 0x29c9b8d1 0x29c9a06f   0x29be7981 0x29be7793 0x2d1deb87 0x2d1d9981 0xbfa1b 0x37ad0aaf)

     

libc ++ abi.dylib:以未捕获的类型异常终止   NSException

它只发生在设备上,在模拟器中很好(Xcode 7.3)。

当应用程序运行时,手机可以免费使用18GB。

这个错误在过去已经出现,可以通过搜索轻松找到,但是在写入时;这个应用程序只读取数据库,从不写入。

iOS 9设备没有问题。

接下来要检查的是什么?

1 个答案:

答案 0 :(得分:0)

Realm文件是mmap,无论是以只读还是以读写方式打开。不幸的是,这可能是iPhone 4 / 4S资源限制所固有的问题。我们发现mmap的问题不等,文件小至300 MB,具体取决于设备。

您可以查看this Github issue了解一些可能的解决方法。