viewDidLoad 和 didReceiveMemoryWarning

在我们创建一个新的.h 和 .m文件时,我们会看到.h:

@implementation TestViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

我们来看一下注释中的意思:

Do any additional setup after loading the view.     Dispose of any resources that can be recreated.

做任何额外的设置后加载视图。                                                    处理任何可以被重新创建的资源。

API文档中如是解释

viewDidLoad:调用此方法后,视图控制器已加载视图层次到内存中。调用此方法无论从nib文件或加载视图层次loadView方法中以编程方式创建。你通常覆盖这个方法执行额外的初始化视图从nib文件被加载。

didReceiveMemoryWarning:发送给视图控制器当应用程序接收到一个内存警告。应用程序不会直接调用这个方法。相反,当系统调用此方法确定可用内存的数量很低。你可以重写此方法释放任何额外的内存使用的视图控制器。如果你这样做了,您的实现的方法必须调用实现。

(loadView/nib文件)来加载view到内存 ——>viewDidLoad函数进一步初始化这些view ——>内存不足时,调用viewDidUnload函数释放views

—->当需要使用view时有回到第一步

iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。

当收到内存警告时,如果viewcontroller未显示(在后台),会执行didReceiveMemoryWarning -> viewDidUnLoad;

如果viewcontroller当前正在显示(在前台),则只执行didReceiveMemoryWarning。

当重新显示该viewController时,执行过viewDidUnLoad的viewcontroller(即原来在后台)会重新调用loadview -> viewDidLoad。

时间: 2024-10-14 08:54:24

viewDidLoad 和 didReceiveMemoryWarning的相关文章

loadView 与 viewDidLoad 和 didReceiveMemoryWarning与viewDidUnload 详解

首先试验下:viewController初始化 分两个支路:initWithNibName加载初始化 及 init 直接初始化: <1>调用initWithNibName加载一个xib界面文件来实现初始化viewController: 在 self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone"bundle:nil] autorelease]; xib界面文

为何需要调用“super viewDidLoad”

一.为何需要调用"super viewDidLoad" - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } - (void)viewDidLoad { [super viewDidLoad]; } 在上面的代码中,什么需要调用父类相应的方法呢? 以viewDidLoad为例,父类(super)中的viewDidLoad会帮助你做一些初始化的工作,比如A是父类,B继承A,B在viewDidLoad方法中

IOS调用相机相册

#import "SendViewController.h"  //只能打开,没有加载图片的代码,老代码,供参考 #import <MobileCoreServices/UTCoreTypes.h> @interface SendViewController ()<UIActionSheetDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate> -(IBAction)sel

QQ空间客户端(1)-UIPopoverController基本使用

UIPopoverController 是iPad的专属API ViewController.m #import "ViewController.h" #import "DJMenuViewController.h" @interface ViewController () - (IBAction)leftItemDidClick:(id)sender; @end @implementation ViewController - (void)viewDidLoad

作业——FoodTracker程序

作业及学习地址:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html zoom:就理解为快速变大变小.reveal:显示.prompt:提示.pronounced:明显的. AppDelegate.swift文件有两个主要的功能: 创建了程序入口点,并且循环运行,传送输入事件到app中(由UIApplicationMain attribu

IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(转)

原文链接:http://blog.csdn.net/daleiwang/article/details/34081231 (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理. [objc] view plain copy print? // //  AppD

动画效果-基础动画设置(改变大小,改变透明度,翻转,旋转,复原)

在可视化编程下 #import "BaseViewController.h" @interface BaseViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation BaseViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)didReceiveMemoryWar

iOS tableViewCell自适应高度 第三发类库

转自:http://www.cnblogs.com/qianLL/p/5393331.html 在github中有许多大牛封装好的第三发类库,其中有个自适应cell高度的类库 下载地址:https://github.com/gsdios/SDAutoLayout model类 commentsModel #import "JSONModel.h" #import "getCommentData.h" @interface commentsModel : JSONMo

本地通知 LocalNotification

本地通知 LocalNotification  在Appdelegate中实现以下两个方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //设置桌面红点内的数字 // application.app