所有NSUserDefaults,都在tableview中

时间:2014-10-03 11:08:09

标签: ios objective-c arrays uitableview nsuserdefaults

好的,我有一个程序可以将用户首选项保存在自己的密钥中。所以forKey:textField.text

所以我真的不知道用户在使用什么,他们可以随心所欲地制作,我希望能够拥有一个表视图,可以从程序中获取所有NSUserDefaults并显示它。

我可以制作一个包含所有NSUserDefaults的数组吗?我知道如何显示数组。 这已经解决了!

好的,这就是我解决它的方法,每次用户创建新对象时,它都保存到NSArray并且NSArray保存到NSUserDefaults。我有prepareForSegue,它会将信息提供给tableView,然后显示出来。当按下单元格时,它获取单元格名称,然后输入forKey然后它就可以了!

在下面的回答问题的帮助下!

感谢那些花时间回答的人!

1 个答案:

答案 0 :(得分:1)

您可以将数组设置为userDefaults,实现非常简单。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self addTextToUserDefaults:@"hello"];
    [self addTextToUserDefaults:@"how are you?"];
    [self addTextToUserDefaults:@"hi"];

    for (NSString *text in [self textsInUserDefaults]) {
        NSLog(@"%@", text);
    }
}

- (void)addTextToUserDefaults:(NSString *)aText
{
    NSMutableArray *texts = [[[NSUserDefaults standardUserDefaults] objectForKey:@"textArray"] mutableCopy];
    if (!texts) {
        texts = [NSMutableArray new];
    }
    [texts addObject:aText];

    [[NSUserDefaults standardUserDefaults] setObject:texts forKey:@"textArray"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (NSArray *)textsInUserDefaults
{
    return [[NSUserDefaults standardUserDefaults] objectForKey:@"textArray"];
}

因此,您只需复制addTextToUserDefaultstextsInUserDefaults方法 致电[self addTextToUserDefaults:textField.text];添加文字,
调用[self textsInUserDefaults]来检索文本数组。