扫码关注官方订阅号
IOS真机测试的时候控制台一直提示内存警告,就是那一串memory warning英文,怎么解决。
人生最曼妙的风景,竟是内心的淡定与从容!
看一看左边栏的debug navigator那儿,memory有多高。 如果真的很高,那可能要注意下了。是不是有循环里内存泄露的情况,是不是有过大的图片之类。可以用instrument配合调试。
补充:
图片是网络请求加载的,这个怎么减小图片的大小呢
服务器端可以减小图片的大小。
还有里面开启了一个定时器,但是我没有给对象它,直接开启,然后因为没有对象,所以也没关闭它,定时器主要是scrollview的滑动用到,我开启的是这样【nstimet sch....】这样的,没有给对象,我觉得这样影响不大吧
定时器NSTimer会retain target,直到invalidate才会释放。如果你不把它作为对象保存,它就不会释放target,会造成内存泄露。正确的做法是把 timer 保存起来里,然后在用完后或dealloc里释放掉。
NSTimer
retain target
invalidate
dealloc
- (void)dealloc { [self.timer invalidate]; self.timer = nil; }
还有我是cell上面直接自定义一个uiview然后uiview上又自定义一个通用的uiview,在最后的uiview上添加控件,这样会不会也是引起内存警告的原因呢。
这样不会有任何问题。前提是正确重用了 cell,取出重用的 cell 后不要重复添加那些 view。
还有一个问题想请问你的,就是视频播放MPMoview...那个类,它有通知可以监听当前实时播放时间吗??
MPMoview 是啥?你是说MPMoviePlayerController吗?有个属性currentPlaybackTime可以获取播放时间。 没有监听方法,也无法添加 KVO。一般的做法是添加一个 Timer,在 Timer 的回调方法里调这个属性看播放进度。
MPMoviePlayerController
currentPlaybackTime
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
看一看左边栏的debug navigator那儿,memory有多高。

如果真的很高,那可能要注意下了。是不是有循环里内存泄露的情况,是不是有过大的图片之类。可以用instrument配合调试。
补充:
服务器端可以减小图片的大小。
定时器
NSTimer
会retain target
,直到invalidate
才会释放。如果你不把它作为对象保存,它就不会释放target,会造成内存泄露。正确的做法是把 timer 保存起来里,然后在用完后或dealloc
里释放掉。这样不会有任何问题。前提是正确重用了 cell,取出重用的 cell 后不要重复添加那些 view。
MPMoview 是啥?你是说
MPMoviePlayerController
吗?有个属性currentPlaybackTime
可以获取播放时间。没有监听方法,也无法添加 KVO。一般的做法是添加一个 Timer,在 Timer 的回调方法里调这个属性看播放进度。