iOS-读写plist文件

读写plist文件

  • 问题,我有一个plist文件,表示56个民族的,但是里面保存的字典,我想转换成一个数组
  • 好的,那么就先遍历这个plist,然后将结果保存到一个数组中,这里出现的一个问题就是C语言字符串转换成NSString的问题,一开始使用- (nullable id)initWithCString:(const char *)bytes,一直出问题,转换后有问题。
  • 然后我就换了一个方法- (nullable id)initWithCString:(const char *)bytes length:(NSUInteger)length 这个方法转换后没有问题了。
  • 第一个plist是按照26个英文字母为key的字典。
  • 结果,按照数组保存。
    // 读取56个民族
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"nation.plist" ofType:nil];
    NSDictionary *dict2 = [NSDictionary dictionaryWithContentsOfFile:filePath];
       
     // 拼接路径
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
    NSString *plistPath1 = [paths objectAtIndex:0];
    NSString *filename = [plistPath1 stringByAppendingPathComponent:@"nation2.plist"];

    NSMutableArray *mutab = [NSMutableArray array];
    
    for (int i = 0 ; i < 26; i ++) {
        char x = 65 + i;
        NSString *str=  [[NSString alloc] initWithCString:&x length:1];
        NSArray *arr = dict2[str];
        for (NSInteger j = 0; j < arr.count; j ++) {
            [mutab addObject:arr[j]];
        }
    }
    // 保存成数组
    [mutab writeToFile:filename atomically:NO];
    NSLog(@"%@",mutab);

总结

  • 主要是C语言字符串和OC字符串的转换,以前也不长做,转换的话,就用下面这个函数
  • - (nullable id)initWithCString:(const char *)bytes length:(NSUInteger)length
posted @   struggle_time  阅读(567)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示