在 AppDelegate 中使用 ViewController 中的数组

Posted

技术标签:

【中文标题】在 AppDelegate 中使用 ViewController 中的数组【英文标题】:Using Array from ViewController in AppDelegate 【发布时间】:2013-07-09 23:30:12 【问题描述】:

我有一个存储在 ViewController.m 中的数组。但是当应用程序进入后台时,我想从数组中发布通知。

所以我的 NSMutableArray “列表”是在 ViewController.m 中创建的,但我需要在 AppDelegate.m 中使用

- (void)applicationDidEnterBackground:(UIApplication *)application




for (NSString *thing in list) 
    UILocalNotification *notif = [[UILocalNotification alloc] init];
    notif.alertBody = thing.text;
    [[UIApplication sharedApplication] presentLocalNotificationNow:notif];

【问题讨论】:

【参考方案1】:

如果 ViewController.m 是你的主要 VC:

ViewController *yourVC = (ViewController*)self.window.rootViewController;
yourVC.yourMutableArray = whateverYouWant;

我建议将数据保存在 NSUserDefaults 中,然后您可以轻松访问它并在任何地方读/写。顺便说一句,在 appDelegate 中从该方法显示 localNotifications 是一个坏主意。当有人试图离开应用程序时,应用程序商店不会喜欢立即通知......如果你甚至可以这样做的话。

【讨论】:

上面的代码应该放在应用程序委托中......但是你应该按照我所说的 NSUserDefaults 来代替。

以上是关于在 AppDelegate 中使用 ViewController 中的数组的主要内容,如果未能解决你的问题,请参考以下文章

alloc init 不会在其中加载组件

使用 restkit 和核心数据的最佳实践

以编程方式将 leftBarButtonItem 添加到应用程序

present的时候是可以直接回到第一个viewcon的

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ViewCon

如何在 AppDelegate 中使用 stringByEvaluatingJavaScript