每次在 plist 中添加新的 NSMutableDictionary,即使我只分配一次

Posted

技术标签:

【中文标题】每次在 plist 中添加新的 NSMutableDictionary,即使我只分配一次【英文标题】:Each time new NSMutableDictionary added in plist even if I allocate it only once 【发布时间】:2011-07-29 07:14:58 【问题描述】:

在我的应用程序中,我必须从 xml 中保存键 @"v_number" 的标记值,每次从 plist 中的服务器更改。因为我成功地更新了 plist 中键 @"v_number" 的新更新值。

但问题是当我运行应用程序时,每次添加新的 NSMutableDictionary。

但我只想在 plist 中添加一次。

有没有人知道,为什么每次都指定分配?

NSArray *temp = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory=[temp objectAtIndex:0];
NSString *fileAdd = [docDirectory stringByAppendingPathComponent:@"PList.plist"];
if ([[NSFileManager defaultManager]fileExistsAtPath:fileAdd]) 

    PListArray = [[NSMutableArray alloc] initWithContentsOfFile:fileAdd]; 
    main =  [PListArray objectAtIndex:0];
    t1 = [main objectForKey:@"v_number"];

else

    PListArray=[[NSMutableArray alloc]init];
    t1=@"0";

//main = [[NSMutableDictionary alloc]initWithContentsOfFile:fileAdd];


main = [[NSMutableDictionary alloc]init];


[main setObject:t1 forKey:@"v_number"];

【问题讨论】:

请将更新文件的代码贴出来 我在 -(void) ParseXML: (NSString *)path 方法中更新文件。在应用程序中删除。 我想看看你是如何更新文件的,看看为什么它是添加字典而不是覆盖 我通过这种方式更新 [PListArray addobject:main] 您没有发现问题吗?你正在使用 addObject 然后想知道为什么要添加对象 【参考方案1】:
if (main != nil) 
    main = [[NSMutableDictionary alloc]init];

【讨论】:

以上是关于每次在 plist 中添加新的 NSMutableDictionary,即使我只分配一次的主要内容,如果未能解决你的问题,请参考以下文章

将新的 plist 文件添加到 iOS 应用程序

将 NSMutable 数组存储到 sqlite 数据库中

需要使用 Objective C 将新的键和值添加到 Plist 中? [复制]

过滤自定义对象的 NSMutable 数组

writeToFile:atomically: 不保存新的 plist 数据

将数据添加到 plist