要将数据传递到我的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
答案 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