• 小图用 imageNamed: 大图用 dataWithContentsOfFile:options



    1down voteaccepted

    If you're loading images like:
    [UIImage imageNamed:@"myImage.png"];
    Then the memory for this image will not deallocated, because imageNamed: cache the image. This method is useful for showing some small icons,avatars, etc. So, if you must show many big images, then use
    UIImage *myImage = [UIImage imageWithData:[[NSBundle mainBundle] pathForResource:@"myImage" ofType:@"png"];
    This will not cache the image and memory will deallocated when retain count will equal to 0 for that object.

    Besides that, when you only push a view controller without pop it in future, then the view controller will never deallocated and will always take a place in memory until the app will not crashed/killed, or until the ViewController who holds that view controller will not deallocated.

    So, always make sure that you deallocated the viewController if there is no more need of it (i.e. pop it if it was pushed, or dismiss it in case if it was presented modally) and then show your next view controller.

    share|improve this answer
     
    1  
    Instead of using -dataWithContentsOfFile:, I would suggest using -dataWithContentsOfFile:options:, and use the NSDataReadingMappedIfSafe, so that you don't have the overhead of copying around the file's data to user-space until UIImage reads it. –  Richard J. Ross IIIJul 10 at 20:03
  • 相关阅读:
    一起学Python:协程
    一起学Python:字符串介绍
    一起学Python:列表介绍
    一起学Python:字典介绍
    一起学Python:元组
    函数介绍
    函数参数和函数返回值
    CodeForces 680A&680B&680C&680D Round#356
    POJ 3481 set水过
    BZOJ 1037 生日聚会 DP
  • 原文地址:https://www.cnblogs.com/willbin/p/4088028.html
Copyright © 2020-2023  润新知