Ios 将数据传递给应用程序委托
我有一个类Ios 将数据传递给应用程序委托,ios,objective-c,Ios,Objective C,我有一个类TouchDrawView,它包含NSMutableArray*completeLines。 现在,当应用程序终止时,我想将这个数组保存到文件(我知道 如何保存,我已经将其编写为类TouchDrawView的saveArray方法 我的问题是,在appDelegate中,我想覆盖sayapplicationidenterbackground调用TouchDrawView类对象上的saveArray方法,将数组保存到我提到的文件中 你看到我的问题了吗?如何将TouchDrawView的实
TouchDrawView
,它包含NSMutableArray*completeLines代码>。
现在,当应用程序终止时,我想将这个数组保存到文件(我知道
如何保存,我已经将其编写为类TouchDrawView
的saveArray
方法
我的问题是,在appDelegate
中,我想覆盖sayapplicationidenterbackground
调用TouchDrawView
类对象上的saveArray
方法,将数组保存到我提到的文件中
你看到我的问题了吗?如何将TouchDrawView
的实例传递给app delegate
,以便后者可以在其上调用saveArray
方法?e、 g
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[touchDrawViewObject saveArray]; // how to get this object?
}
另外,到目前为止,我一直在试图避免使用单例/静态数据,只是想知道如何使用其他方法。通过让TouchDrawView观察UIApplicationIdentinterBackgroundNotification
通知,您可以在不连接appDelegate的情况下使用它。当应用程序进入后台时触发
您可能不希望在应用程序中使用不同的保存方法,但这取决于应用程序的构建方式
例如:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(saveMethod:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
通过让TouchDrawView观察UIApplicationIdentinterBackgroundNotification
通知,您可以在不连接appDelegate的情况下完成此操作。当应用程序进入后台时触发
您可能不希望在应用程序中使用不同的保存方法,但这取决于应用程序的构建方式
例如:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(saveMethod:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
TouchDrawView只会有一个实例吗?听起来你并不是在遵循MVC设计模式。数据不应包含在视图类中。@特洛伊敌人:这是一个自定义视图,我正在保存它必须在drawRect
中绘制的行,我将在其他地方存储它们…您将它们存储在M(model)位。正如@特洛伊敌人建议的那样,让一个模型来处理保存。完成绘图后,将其发送到要处理的模型以进行保存。例如,如果您的应用程序崩溃,则不会调用ApplicationIdentinterBackground:但使用model方法将允许您已经保存绘制的数据。TouchDrawView是否只有一个实例?听起来您没有遵循MVC设计模式。数据不应包含在视图类中。@特洛伊敌人:这是一个自定义视图,我正在保存它必须在drawRect
中绘制的行,我将在其他地方存储它们…您将它们存储在M(model)位。正如@特洛伊敌人建议的那样,让一个模型来处理保存。完成绘图后,将其发送到要处理的模型以进行保存。例如,如果应用程序崩溃,则不会调用ApplicationIdentinterBackground:但使用model方法将允许您已经保存绘制的数据。