核心文本有时无法产生结果[iOS]

核心文本有时无法产生结果[iOS],ios,core-text,Ios,Core Text,我正在帮助一家公司进行iOS项目,该项目使用核心文本。该应用程序的一些用户报告说,该应用程序中偶尔会丢失文本。看来™ 这与内存有关,因为可以通过关闭应用程序和后台应用程序来解决 我编写了几行代码来模拟应用程序的使用——因此应用程序“自行运行”,在视图控制器之间随机导航,在文本字段中滚动等——以跟踪正常使用时是否出现此问题 我发现了一些与核心文本使用有关的内存泄漏,但根据仪器,内存丢失量相当低。但是,当模拟运行大约20分钟后,由于内存警告,应用程序会被操作系统关闭 我打算修复这个内存泄漏,但我的问

我正在帮助一家公司进行iOS项目,该项目使用核心文本。该应用程序的一些用户报告说,该应用程序中偶尔会丢失文本。看来™ 这与内存有关,因为可以通过关闭应用程序和后台应用程序来解决

我编写了几行代码来模拟应用程序的使用——因此应用程序“自行运行”,在视图控制器之间随机导航,在文本字段中滚动等——以跟踪正常使用时是否出现此问题

我发现了一些与核心文本使用有关的内存泄漏,但根据仪器,内存丢失量相当低。但是,当模拟运行大约20分钟后,由于内存警告,应用程序会被操作系统关闭

我打算修复这个内存泄漏,但我的问题是,我将无法确保修复主要错误(丢失的文本),因为我自己无法复制它

所以我的最后一个问题是:有没有人在使用核心文本时遇到过iOS上缺少文本的问题,这是由于内存泄漏造成的?听起来有道理吗?如果是,这是否只与特定版本的iOS有关


我感谢任何能帮助我的答案

UIViewController可能会实现didReceiveMemoryWarning,当您的应用程序内存不足时,系统会调用它。作为核心文本的框架类最有可能实现这一点,并相应地采取行动以节省内存。因此,您的核心文本对象可能旨在帮助您的应用程序解决内存不足的问题,释放一些资源,甚至可能导致其内容空白。首先修复应用程序中的所有内存泄漏


另一方面,如果你不能复制它们,那么所有的错误都很难纠正。如果您怀疑问题是由于内存不足造成的,请尝试通过在应用程序中分配大量内存来模拟这一情况,并希望您可以通过这种方式重现错误行为。

谢谢您的回答。我觉得这很奇怪。如果这些泄漏引起了一些用户的问题,为什么应用程序不会为它们崩溃(但是文本是空白的),但是它对我来说(我从来没有看到空白文本)吗?有什么建议吗?我不知道iOS的内存管理是如何工作的,但我可以想象这样一种情况:1)你的应用程序消耗了“太多”内存。操作系统将通知发送到你的应用程序/UIViewControllers 2)fw的UIViewControllers减少其内存占用,例如释放一些UI资源(空白文本视图)3)你仍然消耗太多内存4)如果没有其他应用程序运行,操作系统甚至可以让你的应用程序运行5)如果有其他应用程序需要内存,OS可以考虑做一个更激进的步骤并杀死你的进程,这取决于情况,比如加载的其他应用程序,OS在内存警告和杀戮信号之间的灵活性,第一次警告后释放多少内存,等等。我假设iOS内存管理的复杂性可能会在我的设备和其他用户的设备上创建非常不同的场景。我想最好的方法是修复内存泄漏,然后希望它也能修复丢失的文本问题。再次感谢您的回答。您可以“感谢”我的回答,通过点击勾号并投票向上点击向上箭头:)希望您能找到问题的原因,不可复制或不确定的错误是软件开发中最丑陋的事情之一。