zoukankan      html  css  js  c++  java
  • NSUserDefaults 存储可变数组问题

    废话不多说上代码,项目中遇到的问题是:

    NSMutableArray * arrayLoginNames = [NSMutableArray array];

    arrayLoginNames  = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:KLastLoginNameForAutoSendMsgToKeFu];

    这句话取出了数组,可是当对数组添加元素后,进行存储时卡在了下面这句话:

    [[NSUserDefaults standardUserDefaults] setObject:arrayLoginNames forKey:KLastLoginNameForAutoSendMsgToKeFu];

    把主线程卡主,但是不崩溃,不知道为何,就Google了,stackoverflow给了解答办法,

    When you store mutable objects to NSUserDefaults, it stores an immutable copy of it so you can't change it directly like that. You have to get the mutable copy out of defaults, change it, and then set it back, replacing old object in defaults.

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSMutableArray *mutableArrayCopy = [[prefs objectForKey:@"theArray"] mutableCopy];
    [mutableArrayCopy addObject:@"some new value"];
    [prefs setObject:mutableArrayCopy forKey:@"theArray"];

    [[NSUserDefaults standardUserDefaults] synchronize];

     
  • 相关阅读:
    2981 大整数加法
    1160 矩阵的最大值(指针专题)
    1159 最大的两个数(指针专题)
    1127 矩阵乘积
    1126 布尔矩阵的奇偶性
    1125 上三角矩阵的判断
    1124 两个有序数组合并
    1123 最佳校友
    1122 小明的调查作业
    1121 电梯
  • 原文地址:https://www.cnblogs.com/daaiwusehng/p/4878922.html
Copyright © 2011-2022 走看看