【问题标题】:error writing to plist写入 plist 时出错
【发布时间】:2011-11-29 11:12:06
【问题描述】:
[array writeToFile:[documentsDirectory stringByAppendingPathComponent:@"data.plist" atomically:YES];

这一行给出了方法-stringByAppendingPathComponent 未找到的错误。有什么问题

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *array = [[NSArray alloc]initWithObjects:@"First", @"Second", @"Third", nil];
[array writeToFile:[documentsDirectory stringByAppendingPathComponent:@"data.plist" atomically:YES]];

【问题讨论】:

  • 您忘记了“]”,请格式化您的代码。
  • 您还忘记了包含其他代码,这些代码会给该行提供一些上下文。什么是documentsDirectory,如何派生它?
  • 不,这是复制粘贴问题,我仍然遇到同样的问题
  • NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSArray *array = [[NSArray alloc]initWithObjects:@"First", @"Second", @"Third", nil]; [array writeToFile:[documentsDirectory stringByAppendingPathComponent:@"data.plist" atomically:YES]];
  • 对不起,我知道它很难读

标签: iphone objective-c xcode


【解决方案1】:

正如 Mats 在 cmets 中指出的那样,但似乎被忽略(或您在编辑中错误地纠正了):

[array writeToFile:[documentsDirectory stringByAppendingPathComponent:@"data.plist" atomically:YES]]; 

应该是

[array writeToFile:[documentsDirectory stringByAppendingPathComponent:@"data.plist"] atomically:YES]; 

注意括号的位置。

【讨论】:

    【解决方案2】:
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    
    plistpath = [[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:@"Product.plist"]];
    

    然后

    [array writeToFile:path atomically:YES]; 
    
    [Whatever [Array or Dictionary] you want to Write in Plist]
    

    如果仍未创建 plist,则检查您的数组或字典是否必须为空。

    【讨论】:

      【解决方案3】:
          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
          NSString *documentsDirectory = [paths objectAtIndex:0];
          NSLog(@"%@",documentsDirectory);
      
          NSString *plistName = @"%@chores.plist";
          NSString *path = [documentsDirectory stringByAppendingPathComponent:plistName];
      
          NSArray *array=[[NSArray alloc]initWithObjects:@"abc",@"pqr",@"xyz",nil];
      [array writeToFile:path atomically:YES];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 2011-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多