We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
阅读源码的时候看到关于 野指针crash防护 这块, 主要的策略是建立队列存放zombie对象,用来替代已被释放的对象来处理方法来避免崩溃。 这里有些疑问:如果队列开的小了,那么页面复杂的时候,实际上能起到保护作用的比较少,队列开的大了,又会比较消耗内存,不知可有什么好的方案或者策略呢?
The text was updated successfully, but these errors were encountered:
目前并没有比较好的策略,只能根据实际情况调整,不过可以避免的是需要过滤掉占用大内存的对象,比如UIImage这些。这种类型的防护风险也比较大,一般不会直接在线上产品开启,可能会只针对部分设备开启。
UIImage
Sorry, something went wrong.
是啊 使用起来很有限制。 并不能完全解决EXC_BAD_ACCESS的问题。 不知道有没有其他的思路可以考虑下
@AironMore EXC_BAD_ACCESS这类Crash实际上是从Mach层抛出的,从安全角度来说,一旦这类错误发生,应该立即终止应用。所以能够采取的措施只能是去减少这种错误发生。除了规范代码外,目前能够用起来的也只能是延迟内存释放这种并不是很好的方案。但如果抱着钻研的态度来看这个问题的话,还可以有一种方案尝试,就是直接捕捉Mach层的异常。当然,这种捕获方式是在异常已经发生后再去捕获处理的,iOS App的Runloop会被停掉,需要手动启用一个Runloop来维持应用的生命周期。感兴趣的话,可以参考这篇博客——Handling unhandled exceptions and signals.
No branches or pull requests
阅读源码的时候看到关于 野指针crash防护 这块, 主要的策略是建立队列存放zombie对象,用来替代已被释放的对象来处理方法来避免崩溃。 这里有些疑问:如果队列开的小了,那么页面复杂的时候,实际上能起到保护作用的比较少,队列开的大了,又会比较消耗内存,不知可有什么好的方案或者策略呢?
The text was updated successfully, but these errors were encountered: