Objective c objectiveC NSMutableArray添加NSMutableDictionary问题
我的问题是为什么有些东西得到“其他人得不到” 我想应该是这样Objective c objectiveC NSMutableArray添加NSMutableDictionary问题,objective-c,Objective C,我的问题是为什么有些东西得到“其他人得不到” 我想应该是这样 { "beacon_uuid" = "myUUID"; major = 65535; minor = 65535; rssi = "-95"; "submit_time" = "2015-10-29_17:45:56"; "user_name" = guest; }, 因为我的密钥都是NSString,我的majorStr和minorStr也都是NSString 请告诉我为什么以及如何
{
"beacon_uuid" = "myUUID";
major = 65535;
minor = 65535;
rssi = "-95";
"submit_time" = "2015-10-29_17:45:56";
"user_name" = guest;
},
因为我的密钥都是NSString,我的majorStr和minorStr也都是NSString
请告诉我为什么以及如何解决为什么 您得到的是控制台输出,它利用它输出的对象的描述属性。根据apple docs()的说法,这是为了可读性,而不是为了对象的序列化。所以你看到的引语只是为了帮助你阅读。带有空格或其他特定字符(如下划线)的字符串值会用引号括起来,而不带引号的字符串值则不会。 您无法真正解决此问题,因为该函数正在按预期工作。既然你没有告诉我们你想做什么,建议替代方案就变成了一场猜谜游戏。如果您需要可以写入文件并在以后检索的数据,您应该查看属性列表 () 或NSArchiver()。如果打算通过网络发送,那么NSJSONSerialization是否可以满足您的需要?
字典是正确的,它只是
NSLog
如果键或值仅包含字母数字字符,则不显示双引号
{
"beacon_uuid" = "myUUID";
"major" = 65535;
"minor" = 65535;
"rssi" = -95;
"submit_time" = "2015-10-29_17:45:56";
"user_name" = "guest";
},
{key=value;}
否则,如果键或值包含空格、下划线或其他特殊字符
NSDictionary *dict = @{@"key" : @"value"};
NSLog(@"%@", dict);
将显示双引号
{
"beacon_uuid" = "myUUID";
"major" = 65535;
"minor" = 65535;
"rssi" = -95;
"submit_time" = "2015-10-29_17:45:56";
"user_name" = "guest";
},
{“键1”=“值1”;}
PS:不要使用valueForKey:
/setValue:forKey:
来获取/设置字典的值。指定的方法是
objectForKey:
/setObject:forKey:
这不是一个坏问题,但肯定是代码被破坏了吗?枚举一个数组,并将值重复设置为单个字典。这不可能是对的。您使用stringWithFormat
和valueForKey
也是完全错误的;例如,这是正确的(且简洁):NSString*majorStr=maxRssiMArray[i][@“major”]代码>。对于仅包含字母且易于理解为字符串对象的“单个单词”,它不需要引号。但[对象描述]不是这方面的问题。
NSDictionary *dict = @{@"key 1" : @"value 1"};
NSLog(@"%@", dict);