Iphone 从NSUserDefaults检索数据到TableView

Iphone 从NSUserDefaults检索数据到TableView,iphone,objective-c,ios5,Iphone,Objective C,Ios5,我通过NSUserDefault保存两个标签的值: - (IBAction) saveData { // Store the data NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:autore.text forKey:@"Author"]; [defaults setObject:testo.text forKey:@"Text"];

我通过NSUserDefault保存两个标签的值:

- (IBAction) saveData
{
    // Store the data
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:autore.text forKey:@"Author"];
    [defaults setObject:testo.text forKey:@"Text"];
    [defaults synchronize];    
}
// NSArray
@synthesize dataArray;


- (void)viewDidLoad {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
self.dataArray = [NSArray arrayWithObjects:[prefs objectForKey:@"Author"], [prefs objectForKey:@"Text"],nil];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// There is only one section.
return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of time zone names.
return [dataArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 ..............
 ..............

 NSString *string = [dataArray objectAtIndex:indexPath.row];

 // Authors
 cell.textLabel.text = string;
 // Text
 cell.detailTextLabel.text = string;

 return cell;
}
然后我尝试在tableView中检索这些值:

- (IBAction) saveData
{
    // Store the data
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:autore.text forKey:@"Author"];
    [defaults setObject:testo.text forKey:@"Text"];
    [defaults synchronize];    
}
// NSArray
@synthesize dataArray;


- (void)viewDidLoad {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
self.dataArray = [NSArray arrayWithObjects:[prefs objectForKey:@"Author"], [prefs objectForKey:@"Text"],nil];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// There is only one section.
return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of time zone names.
return [dataArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 ..............
 ..............

 NSString *string = [dataArray objectAtIndex:indexPath.row];

 // Authors
 cell.textLabel.text = string;
 // Text
 cell.detailTextLabel.text = string;

 return cell;
}
我将获得如图所示的结果:
我理解你的问题,但首先我需要知道你在储蓄什么。您是否仅将一个字符串保存为默认值或更多,因为如果您要保存更多,我建议您首先将所有这些文件添加到数组中,然后将其保存为默认值

所以
NSMutableArray*myArray=[[NSMutableArray alloc]init]autorelease];
[myArray addObject:myfirstauthor];
[myArray addObject:mysecondauthor];
[myArray addObject:mythirdauthor]。。。。
引文也一样

然后我会将数组保存到NSUserDefaults,正如您正确所做的那样。下次加载时,从默认值中获取这些数组并从中检索信息

因为在这种情况下,您只保存了一个长字符串

还有一个注意事项,但我不确定这一点,可能保存到默认值的所有内容都应该是NSDATA类型,但我不确定,请查看编程指南。=)


Happy coding=)

在我看来,你这样做只能有一位作者和一篇文章。你打算有多个作者和文本吗?是的,有多个作者/文本那么你需要创建一个具有两个属性的子类,例如author和text。然后将这些对象组成一个数组。然后您可以说
cell.textlab.text=[dataArray objectAtIndex:indexath.row].author
cell.detailTextLabel.text=[dataArray objectAtIndex:indexPath.row].text另外,您是否计划将这些都存储在用户默认值中?如果是这样的话,也许你应该研究一下CoreData。这将很容易为你做很多。实际上,我会为用户保存最喜欢的作者/文本。我不知道nsuserdefault是否是最好的方法,也许我必须使用sqlite?Thk作为回复。我在NSUserDefault中保存了多对值作者/文本,但我不知道如何检索到tableViev(如我的图片)。ok和autore.txt是什么???它是UITextView还是其他什么?因为我不知道你到底想要存储什么?要存储所有作者还是只存储一个收藏夹??=)