我有一个嵌入式UIWebView
的应用。当我将特定页面加载到其中时,它会毫无例外地崩溃模拟器,但我在Xcode控制台中看到以下消息:
断言失败:(addr!= MAP_FAILED),函数 _open_and_mmap_for_reading,file /SourceCache/LanguageIdentifier_Sim/LanguageIdentifier-114/LanguageIdentifier.c, 593行。
有时,我在控制台中看到以下消息:
malloc: * mmap(size = 2097152)失败(错误代码= 12)
此崩溃发生在后台线程中:
Thread 20, Queue : com.apple.root.default-priority
#0 0x93c4ea6a in __pthread_kill ()
#21 0x92138e72 in _pthread_wqthread ()
我不认为这是我的记忆泄漏。这在模拟器和设备中在iOS6,iOS6.1和iOS7中崩溃。当设备崩溃时,我从未在控制台中看到任何消息。
有什么想法吗?
答案 0 :(得分:3)
特定的HTML有一个具有以下样式的表:
width="393025px"
当我拨打以下电话时:
CGSize fitsSize = [self.webView sizeThatFits:CGSizeMake(CGRectGetWidth(self.view.bounds), CGFLOAT_MAX)];
我有一个疯狂的大小:(宽度= 393158,身高= 2763),我立即将UIWebView
的大小设置为:
self.webView.frame = CGRectMake(0, 0, fitsSize.width, fitsSize.height)
显然,这很糟糕。 UIWebView
无法处理那么大的问题。
将我的调整大小代码更改为
self.webView.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), fitsSize.height)
修复了问题。