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);