[array addObject:textdata.text];
NSUserDefaults *save = [NSUserDefaults standardUserDefaults];
[save setObject:array forKey:@"success" ];
[save synchronize];
-(void) viewDidLoad
NSUserDefaults *viewdata1 = [NSUserDefaults standardUserDefaults];
[viewdata1 objectForKey:@"success"];
[viewdata1 synchronize];
[tabledata reloadData];
将数据保存在数组中后,如何在应用再次运行后上传数据?我希望数据在表格中加载一次。
答案 0 :(得分:0)
第一步是从用户默认值中检索它。第二步不是放在地板上。
[viewdata1 objectForKey:@"success"];
这是一个,但不是另一个:你检索它,然后你把它放在地板上。
您需要将对象存储为属性的值(这意味着您需要为此目的声明属性),然后,在表视图的数据源中,将该数组的计数作为行数返回和数组中的对象(或这些对象的属性)作为行值。
此外,您无需在检索值后调用synchronize
,尤其是。
答案 1 :(得分:0)
你应该这样做:
TSTableViewController.h:
@property(nonatomic, readwrite, retain) NSMutableArray* dataSource;
TSTableViewController.m:
- (id) init
{
if ((self = [super init]))
{
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(applicationDidEnterBackground:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
}
return self;
}
- (void) applicationDidEnterBackground: (NSNotification*) notification
{
[[NSUserDefaults standardUserDefaults] setObject: self.dataSource
forKey: @"success" ];
}
- (void) viewDidLoad
{
[super viewDidLoad];
NSArray* array = [[NSUserDefaults standardUserDefaults] objectForKey: @"success"];
if (array)
{
self.dataSource = [NSMutableArray arrayWithArray: array];
}
else
{
self.dataSource = [[[NSMutableArray alloc] init] autorelease];
}
[tableView reloadData];
}
- (void) addDataToDataSource
{
[self.dataSource addObject: textdata.text];
[tabledata reloadData];
}
- (void) dealloc
{
[dataSource release];
dataSource = nil;
[super dealloc];
}