提问人:Wesk 提问时间:11/16/2013 最后编辑:Wesk 更新时间:11/16/2013 访问量:434
目标 C 可变数组
Objective C Mutable Array
问:
我在程序中使用 NSMutableArray 时遇到问题。
我的视图控制器中包含一个数组,该数组在整个程序过程中添加了字符串。数组在 viewController 中声明。
NSMutableArray *tableData;
我正在尝试在同一个视图控制器中运行一个方法,将数组元素保存到表中。如下图所示,通过视图控制器访问该方法时,该方法工作正常
[self saveData];
当我通过应用程序委托调用相同的 saveData 方法时,数组似乎不包含任何数据。
listView 是 appDelegate 中的对象,用于引用包含 save 方法的视图控制器。
ListAppViewController* listView = [[ListAppViewController alloc] init];
[listView saveData];
此方法是从 applicationWillTerminate 方法调用的。我认为数组元素对 appDelegate 不可用,这就是为什么计数为 0 的原因?
答:
2赞
Wain
11/16/2013
#1
applicationWillTerminate
基本上从来不叫。您需要在应用程序进入后台时触发保存(退出活动)。
评论
0赞
Wesk
11/16/2013
当应用程序关闭时,终止似乎按预期运行。问题是它似乎无法正确访问数组。
2赞
TotoroTotoro
11/16/2013
#2
执行此操作时,将创建视图控制器的新实例。如果目的是保存您在该视图控制器中的任何数据,则此操作将不起作用(因为您没有访问您的应用一直在使用的实例)。ListAppViewController* listView = [[ListAppViewController alloc] init]
以下是您可以做自己想做的事的方法:
- 从应用委托的方法发布通知
applicationWillTerminate
- 订阅该通知
ListAppViewControllerList
- 调入通知处理程序。
[self saveData]
评论