1

我有一个TouchDrawView包含 NSMutableArray *completeLines;. 现在,当应用程序终止时,我想将此数组保存到文件中(我知道如何保存,我已将其编写为saveArrayclass 的方法TouchDrawView)。

我的问题是,在 中appDelegate,我想重写 sayapplicationDidEnterBackground以调用saveArray我的类的对象上的方法,TouchDrawView以将数组保存到文件中,正如我提到的那样。

你看到我的问题了吗?如何将 的实例传递TouchDrawViewapp delegate,以便后者可以saveArray在其上调用方法?例如,

- (void)applicationDidEnterBackground:(UIApplication *)application
{

    [touchDrawViewObject saveArray]; // how to get this object?

}

附言。到目前为止,我一直在尝试避免单例/静态数据,只是好奇如何做到这一点。

4

1 回答 1

1

UIApplicationDidEnterBackgroundNotification通过让 TouchDrawView 观察通知,您可以在不连接到您的 appDelegate 的情况下执行此操作。当应用程序进入后台时触发。

您可能不希望在您的应用程序中使用不同的保存方法,但这取决于您的应用程序的构建方式。

例子:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(saveMethod:)
                                             name:UIApplicationDidEnterBackgroundNotification
                                           object:nil];
于 2013-08-15T08:46:11.473 回答