【问题标题】:Access local file path in Objective C在 Objective C 中访问本地文件路径
【发布时间】:2018-05-31 12:29:58
【问题描述】:

我添加了一个文件夹名称 Resources ,在它下面还有另一个文件夹名称 File 文件夹内有两个我正在尝试解析的 xml 文件。当我将 pathforResource 方法名称赋予我的 Resources 文件夹时,它显示路径为空。如何从这些文件夹中访问这两个 xml 文件? 资源->文件->text.xml。 我的代码是这样的,

    NSMutableArray *aryXMLName = [NSMutableArray new];
    [aryXMLName addObject:@"text.xml"];
    [aryXMLName addObject:@"test1.xml"];

    for(NSString *str in aryXMLName){
        NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:@"Resources"];
        NSLog(@"Path : %@",path);
        NSData *data=[NSData dataWithContentsOfFile:path];

        if ([str isEqualToString:@"text.xml"]) {
            if (data == nil)
                return;
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

            NSLog(@"string: %@", str);
            NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:str];
            NSLog(@"dictionary: %@", xmlDoc);
        }else if ([str isEqualToString:@"test1.xml"]){
            if (data == nil)
                return;
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

            NSLog(@"string: %@", str);
            NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:str];
            NSLog(@"dictionary: %@", xmlDoc);
        }


    }

剧情是这样的,

enter image description here

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    替换此代码:

          NSMutableArray *aryXMLName = [NSMutableArray new];
          [aryXMLName addObject:@"test"];
          [aryXMLName addObject:@"text1"];
    
           for(NSString *str in aryXMLName){
    
                  NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:@"xml"];
                  NSLog(@"Path : %@",path);
                  NSData *data=[NSData dataWithContentsOfFile:path];
    
                  if ([str isEqualToString:@"test"]) {
    
                       if (data == nil)
                           return;
                       NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
                       NSLog(@"string: %@", str);
                       NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:str];
                       NSLog(@"dictionary: %@", xmlDoc);
    
                  }else if ([str isEqualToString:@"text1"]){
    
                       if (data == nil)
                          return;
                       NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
                       NSLog(@"string: %@", str);
                       NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:str];
                       NSLog(@"dictionary: %@", xmlDoc);
                  }
    
            }
    

    【讨论】:

    • 再次在路径中给出 null。 @mayursinh zala
    • 您必须从其名称中删除文件扩展名。检查编辑的答案。
    • 兄弟,当循环运行时,它会给出路径,但是当它进入 else 条件时,它会显示列表中第二项的空路径。 @mayursinh zala
    • 我编辑了我的答案,只需将代码替换为编辑后的答案。
    • 我可以为这两个文件运行一个循环吗? @mayursinh zala
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多