Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 按钮存储器_Iphone_Ios_Ios5 - Fatal编程技术网

Iphone 按钮存储器

Iphone 按钮存储器,iphone,ios,ios5,Iphone,Ios,Ios5,我正在创建大约100个ui按钮,每个按钮都有一个唯一的图像(这些图像是一些60x70 png图像)。我的内存有问题。我想在某个时候释放这个内存,在我使用完这个按钮的时候 我这样设置图像 [button1 setImage:imageButton1 forState:UIControlStateNormal]; 在哪里 button1=[UIButton buttonWithType:UIButtonTypeCustom]; 现在我要做的是将uibuttons使用的图像设置为nil,如下所示

我正在创建大约100个
ui按钮
,每个按钮都有一个唯一的图像(这些图像是一些60x70 png图像)。我的内存有问题。我想在某个时候释放这个内存,在我使用完这个按钮的时候

我这样设置图像

[button1 setImage:imageButton1  forState:UIControlStateNormal];
在哪里

button1=[UIButton buttonWithType:UIButtonTypeCustom];
现在我要做的是将uibuttons使用的图像设置为nil,如下所示

[button1 setImage:nil forState:UIControlStateNormal];

但是这样,内存保持不变。

如果你用过这个按钮,你能把它完全去掉吗

[button1 removeFromSuperview];

当然,要在这方面取得成功相当困难,问题在于图像占用内存。您在哪个设备上测试应用程序?
你的图像在视网膜上大约是60x70px,我猜正常显示的一半。你在这个分辨率中使用它们吗?也许你可以将它们放大一点。 100个按钮意味着您可能正在使用UIScrollview,我建议您使用诸如
UITableView
UICollectionView
(仅限ios6)之类的工具,它可以重用它们的单元格,并且可以帮助您仅为屏幕上的按钮惰性地加载图像,仅为屏幕上可见的按钮显示图像。

希望这有助于

使用ARC进行内存管理?可能没有泄漏,只有缓存的图像。你是不是一次把所有的按钮都装进了内存?如果是这样的话,我并不奇怪你有内存问题。是的,我确实一次加载了所有按钮。我想他只是想删除按钮的图像?不是要从视图中删除。他说他“使用完这个按钮”所以我认为如果你完成了,你就完成了按钮的所有操作。对不起…我只想删除按钮的图像。缓存的图像将被操作系统清除。我正在iPhone4s上测试我的应用程序…我使用的是UIScrollView,在这里我添加了我的按钮…我的UIImages是在我的应用程序中用60x70px创建的…谢谢你的回复。。