Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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_Cocoa Touch_Ipad - Fatal编程技术网

Iphone 当应用程序进入后台模式时释放图形

Iphone 当应用程序进入后台模式时释放图形,iphone,ios,cocoa-touch,ipad,Iphone,Ios,Cocoa Touch,Ipad,在Apple文档中,您可以发现Apple建议在您的应用程序进入后台模式时发布大量数据,如图像。 如何从UIViews和其他数据发布图像? 如何以正确的方式从所有viewController的ui视图中释放图像? 当应用程序获取applicationWillResignActive消息时如何恢复数据? 如果某人有一个好的示例或链接,请展示它。添加到应用程序委派2方法 - (void)applicationDidEnterBackground:(UIApplication *)applicatio

在Apple文档中,您可以发现Apple建议在您的应用程序进入后台模式时发布大量数据,如图像。
如何从
UIViews
和其他数据发布图像?
如何以正确的方式从所有
viewController
ui视图中释放图像?
当应用程序获取
applicationWillResignActive
消息时如何恢复数据?


如果某人有一个好的示例或链接,请展示它。

添加到应用程序委派2方法

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_APP_BACKGROUND object:nil];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_APP_BACKGROUND object:nil];
}
使用以下方法创建BaseViewController:

- (id)init
{
    self = [super init];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillForeground) name:NOTIFICATION_APP_FOREGROUND object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidBackground) name:NOTIFICATION_APP_BACKGROUND object:nil];
    }

    return self;
}


- (void)appDidBackground {
}

- (void)appWillForeground {

}
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

从BaseViewController为所有视图控制器创建子类。在方法appDidBackground中,您应该释放不需要的数据,在appWillForeground-restore中,为什么会有这么多的否决票?好的,这是一个模糊的问题,但实际上是一个好问题。如果能找到一个好的答案(即对初学者有用),那就太好了。有人告诉我,如果使用
[UIImage imagename:@“image.png”]
,这将不会从内存中释放图像。2.如何保存数据并恢复。使用默认值?如果您使用coreData,这很容易。但如何保存nsarray例如,我可以将其保存到nsuserdefaults或plist文件。正确的方法是什么。[UIImage ImageName]缓存所有图像。它可能会在内存警告时释放。2.对于保存大量数据,您应该使用coredata,对于一些数据,NSUserDefaults是一个好方法。如果您想用一些自定义对象保存数组(在NSUserDefault中),您应该为其中的每个自定义类实现NSCoding协议。如何释放随loadView添加的UIView。有些人说需要使用viewDidUnload,但appentertobackgroundmode这个方法不会调用。