【发布时间】:2014-04-17 17:44:01
【问题描述】:
这是我的mainAppDelegate.h:
#import <UIKit/UIKit.h>
@interface mainAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property NSMutableArray *toDoItems;
@end
还有我的mainAppDelegate.m:
#import "mainAppDelegate.h"
@implementation mainAppDelegate
- (void)applicationWillTerminate:(UIApplication *)application
{
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setObject:self.toDoItems forKey:@"toDoItems"];
[defaults synchronize];
}
@end
我有另一个文件,XYZToDoListViewController.m,代码如下:
#import "XYZToDoListViewController.h"
#import "XYZToDoItem.h"
#import "XYZAddItemViewController.h"
@interface XYZToDoListViewController ()
@property NSMutableArray *toDoItems;
@end
@implementation XYZToDoListViewController
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{
XYZAddItemViewController *source = [segue sourceViewController];
XYZToDoItem *item = source.toDoItem;
if (item != nil) {
[self.toDoItems addObject:item];
[self.tableView reloadData];
}
}
- (IBAction)clearData:(UIBarButtonItem *)sender;
{
[self.toDoItems removeAllObjects];
[self.tableView reloadData];
}
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
}
return self;
}
NSUserDefaults *defaults= [NSUserDefaults standardUserDefaults];
if([[[defaults dictionaryRepresentation] allKeys] containsObject:@"toDoItems"]){
NSLog(@"toDoItems found");
self.toDoItems = [[NSMutableArray alloc]initWithArray:[[NSUserDefaults standardUserDefaults]objectForKey:@"toDoItems"]];
} else {
self.toDoItems = [[NSMutableArray alloc] init];
}
self.navigationController.view.backgroundColor =
[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_full.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.contentInset = UIEdgeInsetsMake(-35, 0, -35, 0);
}
@end
这至少是我认为相关的。我的基本框架是我从this tutorial. 遵循的
我做错了什么?当我将项目添加到我的待办事项列表中时,终止应用程序,然后重新启动应用程序,我之前输入的数据不会显示。项目没有错误或警告,也没有崩溃。
【问题讨论】:
-
您没有显示添加
@"mykey"到NSUserDefaults并调用save的部分。 -
你在哪里存储数组在
NSUserDefaults? -
请查看我的编辑。我不小心从早期版本中复制了我的代码。
-
使用 -applicationWillResignActive 方法代替 -appliconWillTerminate
标签: ios objective-c nsmutablearray nsuserdefaults