gpt4 book ai didi

iphone - 从属性列表中检索嵌套的 NSDictionary

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:04 26 4
gpt4 key购买 nike

我想在一个 View 的属性列表中保存数据并在另一个 View 中检索它。我保存的数据结构如下所示:

键:(NSString)值(NSDictionary)

NSDictionary 只包含键和值的字符串。每当按下按钮时,我都会触发此方法来进行保存:

- (IBAction)saveRSSItem:(id)sender {

NSMutableDictionary *dictionary;

if ([[NSFileManager defaultManager] fileExistsAtPath:[self dataFilePath]]){
dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:[self dataFilePath]];
}
else {
dictionary = [[NSMutableDictionary alloc] init];
}

//Create Dictionary to store RSSItem information
NSMutableDictionary *RSSdictionary = [[NSMutableDictionary alloc] init];

if (self.selectedItem.title)
[RSSdictionary setValue:@"title" forKey:self.selectedItem.title];

if (self.selectedItem.summary)
[RSSdictionary setValue:@"summary" forKey:self.selectedItem.summary];

if (self.selectedItem.author)
[RSSdictionary setValue:@"author" forKey:self.selectedItem.author];

if (self.selectedItem.date)
[RSSdictionary setValue:@"date" forKey:self.selectedItem.date];

if (self.selectedItem.content)
[RSSdictionary setValue:@"content" forKey:self.selectedItem.content];

//Add saved RSSItem to dictionary
[dictionary setValue:RSSdictionary forKey:self.selectedItem.title];

//Overwrite the updated dictionary in the property list
NSURL *url = [[NSURL alloc] initFileURLWithPath:[self dataFilePath]];
[dictionary writeToURL:url atomically:YES];
}

当我尝试检索数据时,我会执行如下操作:

NSDictionary *savedRSSItemsDictionary = [NSDictionary dictionaryWithContentsOfFile:[self propertyListFilePath]];
NSDictionary *RSSDictionary = [savedRSSItemsDictionary objectForKey:[savedRSSItemsArray objectAtIndex:indexPath.row]];

第一行检索根字典。第二行检索属性列表中第一行的值(这是一个 NSDictionary)。

但是,我不能在 RSSDictionary 上使用方法 valueForKey:。它似乎不是 NSDictionary?知道为什么当 NSDictionary 在属性列表的值字段中时我无法检索到它吗?我需要使用 NSPropertySerialization 吗?

最佳答案

NSDictionary *savedRSSItemsDictionary = [NSDictionary 
dictionaryWithContentsOfFile:[self propertyListFilePath]];
NSDictionary *RSSDictionary =
[savedRSSItemsDictionary objectForKey:[savedRSSItemsArray
objectAtIndex:indexPath.row]];

是错误的,因为您没有指定正确的 key 。

您应该使用 NSArray 来存储您的数据。根据字典中字段的值索引字典是个坏主意。

关于iphone - 从属性列表中检索嵌套的 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10973753/

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