首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >becomeFirstResponder内存问题

becomeFirstResponder内存问题
EN

Stack Overflow用户
提问于 2012-06-17 16:05:54
回答 1查看 884关注 0票数 1

我有一个隐藏的UITextField,当用户被要求从键盘输入一个字符时,会发送:

代码语言:javascript
复制
[txtField becomeFirstResponder]

这个文本字段有一个关于编辑更改的事件,然后调用一个函数来处理输入的内容,以满足我的需要。

然后,用户选择一个okay按钮,该按钮调用以下内容:

代码语言:javascript
复制
txtBox.text = @"";

[txtBox resignFirstResponder ];

我一直跟踪一些内存问题,一直到[txtField becomeFirstResponder]行。当这个函数被调用时,我的应用程序的内存使用量会增加一倍,并且我会收到一个内存警告(即使代码正在运行)。如果我把它取下来(当然我没有键盘!)但是内存问题就消失了。我已经阅读并尝试了一些方法,比如在委托级移除键盘,但都没有成功。我几乎要创建自己的键盘了。

尽管增加了很多,但只要我不再使用键盘,它就会得到适当的释放--但事实并非如此。这款应用的足迹越来越重,我终生也搞不懂其中的原因。

第一个问题是,有没有可能是上面的问题导致了我的问题?我想这不太可能。

如果没有,有什么建议可以看/为什么我会收到如此快速的增长?

这是Instruments的屏幕截图-红线指示我调用becomeFirstResponder:http://i.stack.imgur.com/E7PaU.png的位置(他们不让我上传-抱歉!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-17 22:04:40

这不是跟踪内存泄漏/问题的好方法。如果有一个内存泄漏,仪器将显示一个泄漏,您可以修复。你不应该仅仅因为你关闭了键盘就认为操作系统会释放内存(如果有的话,它可能是延迟加载和缓存的)。

虽然我从来没有遇到过这样的问题,但当您显示键盘时,您的内存占用可能会增加。你没有说实际使用了多少内存,所以我假设它是一个小应用程序,打开键盘时加倍就可以了。

操作系统会缓存所有冻结的打开应用程序,因此内存总是很紧张。当收到内存警告时,请清除您能做的事情,并让操作系统处理剩下的事情。如果需要,它将杀死后台应用程序。这并不意味着你的应用程序出了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11069844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档