代码之家  ›  专栏  ›  技术社区  ›  YosiFZ

大数组的默认值

  •  0
  • YosiFZ  · 技术社区  · 7 年前

    我正在构建一个macOS应用程序。

    NSUserDefaults 保存 NSMutableArray 使用此方法的数据:

    -(void)addPhotoUrl:(NSString*)url {
        [self.photosArray addObject:url];
    
        [[NSUserDefaults standardUserDefaults] setObject:self.photosArray forKey:@"kPhotos"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
    

    NSMUTABLEARRY可变数组

    -(void)loadPhotosLike {
        NSArray *myRepository = [[NSUserDefaults standardUserDefaults] arrayForKey:@"kPhotos"];
        if(myRepository && [myRepository count] != 0) {
            [self.photosArray addObjectsFromArray:myRepository];
        }
    }
    

    存在这样一个问题:数组同时存在于本地 并保存到 每次我添加一个新的项目,这是一个很好的解决方案,不影响本地内存/应用程序内存/写入磁盘的问题?

    我应该开始使用核心数据吗?

    数组的主要用途之一是搜索对象。使用CoreData会更快吗?

    2 回复  |  直到 7 年前
        1
  •  3
  •   CodeChanger    7 年前

    根据我的经验 NSUserDefaults 仅用于轻量级数据,如可以存储在userDefaults中的一些与首选项相关的数据。

    由于应用程序上的数据负载很重,它会造成内存问题,而且当你在工作时 MacOS 你会发现内存问题很少,但就iOS而言,它肯定会造成问题。

    杰弗里·富尔顿

    链接: UserDefaults Limitations and Alternatives

    此外,添加到上面的UserDefault是不安全的存储,因为数据可以很容易地检索。

    希望这会有帮助。

        2
  •  0
  •   Neal.Marlin    7 年前