【问题标题】:All NSUserDefaults, all in tableview所有 NSUserDefaults,都在 tableview
【发布时间】:2014-11-28 10:46:31
【问题描述】:

好的,所以我有一个程序,它将用户偏好保存在他们自己的密钥中。所以forKey:textField.text

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

我可以用所有的 NSUserDefaults 创建一个数组吗?我知道如何显示一个数组。 这已经解决了!

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

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

感谢花时间回答的人!

【问题讨论】:

  • 让我猜猜,你想要这个用于用户设置吗?
  • 不,你没有到处搜索。就像这里的大多数问题一样,您需要的内容都写在了课程参考文档中。
  • 您学习过任何在线教程吗? SO 不是代码编写服务,但您可以将 NSArray(或 NSMutableArray)添加到 NSUserDefaults,因此您可以将所有字符串存储到数组中,然后简单地将数组写入/读取到 NSUserDefaults
  • 类参考文档?

标签: ios objective-c arrays uitableview nsuserdefaults


【解决方案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] 检索文本数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2022-11-13
    • 1970-01-01
    相关资源
    最近更新 更多