以下代码中notificationIdToCancle1
和notificationIdToCancle2
的区别是什么:
NSDictionary* parameters = (NSDictionary* )parametersObject;
if (parameters != nil) {
NSString* notificationIdToCancle1 = (NSString* )[parameters objectForKey:@"id"];
NSString *notificationIdToCancle2 = [NSString stringWithFormat:@"%@",[parameters valueForKey:@"id"]];
}
两者都不应包含相同的值吗?
答案 0 :(得分:2)
NSString* notificationIdToCancle1 = (NSString* )[parameters objectForKey:@"id"];
该行抓取字典中的对象,将其转换为NSString,无论是否为。
[NSString* stringWithFormat:@"%@",[parameters valueForKey:@"id"]];
这一行,我认为你有一个错误,你可能不想要第一个' *'。您也可能想要调用' objectForKey:'而不是' valueForKey:'。 objectForKey:将返回字典中的条目,而valueForKey:将使用键值编码返回值。
所以:
[NSString stringWithFormat:@"%@",[parameters objectForKey:@"id"]];
这需要字典中的对象,运行' description'在它上面返回一个NSString实例。所以你肯定会得到一个NSString实例。