gpt4 book ai didi

iphone - NSDictionary 拒绝为其键设置值。

转载 作者:行者123 更新时间:2023-12-01 17:18:24 25 4
gpt4 key购买 nike

我有一个方法updateUserPlaceDictionary从一些文本字段中提取文本并将其扔到 NSDictionary 中。在注意到字典的所有值都为空后,我尝试手动为其键设置一些字符串,如下所示:

- (void)updatePlaceDictionary {
//Create a dictionary that holds the location data.
[self.placeDictionary setValue:[NSString stringWithFormat:@"155 Bovet Rd"] forKey:@"Street"];
[self.placeDictionary setValue:[NSString stringWithFormat:@"san mateo"] forKey:@"City"];
[self.placeDictionary setValue:[NSString stringWithFormat:@"ca"] forKey:@"State"];
[self.placeDictionary setValue:[NSString stringWithFormat:@"94402"] forKey:@"ZIP"];

NSLog(@"%@, %@, %@, %@", [self.placeDictionary objectForKey:@"Street"],
[self.placeDictionary objectForKey:@"City"],
[self.placeDictionary objectForKey:@"State"],
[self.placeDictionary objectForKey:@"ZIP"]);
}

这是我对 placeDictionary 的声明:
@property NSMutableDictionary* placeDictionary;

另外,我确实确保在 .m 文件中合成它。

我有方法将所有放入字典的位置数据记录到控制台,但我得到的只是空值。我在另一个完全正常的 View Controller 中具有相同的功能。有人可以告诉我他们是否看到任何不妥之处吗?

最佳答案

您有评论说明

//Create a dictionary that holds the location data.



但你从来没有真正创造它。
初始化字典,你会没事的。
self.placeDictionary = [NSMutableDictionary dictionary];

另请注意: setValue:forKey:setObject:forKey: 不一样.阅读 this answer要了解有关该主题的更多信息,但通常您应该使用 setObject:forKey:对于字典,例如
[self.placeDictionary setObject:@"155 Bovet Rd" forKey:@"Street"];

或现代版本的语法:
self.placeDictionary[@"Street"] = @"155 Bovet Rd";

使用 Objective-C 文字,您实际上可以使整个代码变得更好,检查一下:
self.placeDictionary = @{
@"Street": @"155 Bovet Rd",
@"City" : @"san mateo",
@"State" : @"ca",
@"ZIP" : @"94402"
};

请注意,文字语法会产生一个不可变的字典,它可能不适合您的需要。

最后,请不要使用
[NSString stringWithFormat:@"aString"]

因为在语义上等价于
@"aString"

但在性能方面不太优化(更不用说代码质量了)。

关于iphone - NSDictionary 拒绝为其键设置值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500199/

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