创建我的NSDictionary的JSONRepresentation搞砸了订单?

时间:2011-01-03 15:41:04

标签: json iphone-sdk-3.0 ios4 nsdictionary

要将数据传递到我的webservice,我使用我需要的对象和密钥创建一个NSDictionary,并使用JSONRepresentation对其进行格式化,以便将其发布到我的服务中。

以前只需要2个参数的版本一切正常。包含listitems和UDID的数组。

否我还需要传递版本号,因为我们需要为此新版本的应用程序提供更多数据。

唯一的问题是,当我现在创建我的JSONRepresentation时,事情的顺序都搞砸了。

NSMutableDictionary *rowDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:arrayDict,@"basketListV2",sharedData.udid,@"UDID",@"1.4",@"version",nil];

首先输出版本,然后打印UDID,然后输出basketListV2。

任何人都知道我能做些什么来维持我的NSDict的顺序?我尝试了NSDictionary和NSMutableDictionary(可能不需要对它做任何事情,但出于测试目的,我不得不尝试它。)

提前致谢。

Lewion

1 个答案:

答案 0 :(得分:1)

除非键是字符串,否则NSDictionary的顺序是未定义的(参见http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html

无论如何,排序并没有对字典产生很大的影响。因此,即使在JSON表示级别,您也不应该被它全神贯注。

如果您确实需要对这些内容进行排序(并确保它在版本更改期间保持有序),请使用NSArrays,它们是按接口排序的对象集合。 (见http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html

干杯,

-stan