gpt4 book ai didi

iOS 带有新键的 plist 中的新数组用不同的键覆盖旧数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:58 24 4
gpt4 key购买 nike

我正在使用下面的代码将一个新数组添加到 plist 中,但每次我在我的应用程序中添加一个带有文本字段的新数组时,它都会覆盖旧数组,即使它有一个全新的 key 。有什么想法吗?

- (IBAction)saveViewerItems
{
// get paths from root direcory
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
// get documents path
NSString *documentsPath = [paths objectAtIndex:0];
// get the path to our Data/plist file
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];

// set the variables to the values in the text fields
self.data = [[NSMutableArray alloc] initWithCapacity:20];


// create dictionary with values in UITextFields
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: data, nil] forKeys:[NSArray arrayWithObjects: (@"%@", text), nil]];

NSString *error = nil;
// create NSData from dictionary
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];

// check is plistData exists
if(plistData)
{
// write plistData to our Data.plist file
[plistData writeToFile:plistPath atomically:YES];
}
}

最佳答案

为了获得文件中已有的词典,请使用:

NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:(NSString *)filePath];

为了在该字典中写入另一个数组(使用不同的键),使用:

[dictionary setObject:(id)myArray forKey:(NSString *)myKey];

为了写回文件,使用:

[dictionary writeToFile:(NSString *)filePath atomically:YES];

不需要使用 NSData 类。有关更多信息,请查看 Apple NSDictionary Class

关于iOS 带有新键的 plist 中的新数组用不同的键覆盖旧数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com