如何使用objc访问此数据集中的元素?

时间:2015-08-08 09:03:22

标签: ios objective-c nsarray nsdictionary

我正在努力使用这个数据集:

stopsArray: ( ( { DistanceFromStart = 0; Ordinal = 1; Stop = { Lat = "38.90282440185547"; Lon = "-77.03208160400391"; OrgAbbr = "<null>"; OrgId = DcCi; StopCode = 1001259; StopId = "DcCi_1445_7727"; StopName = "NW 14TH ST & NW K ST"; }; }, { DistanceFromStart = "0.443314063224555"; Ordinal = 2; Stop = { Lat = "38.90834426879883"; Lon = "-77.03208923339844"; OrgAbbr = "<null>"; OrgId = DcCi; StopCode = 1001393; StopId = "DcCi_1445_7808"; StopName = "NW 14TH ST & NW RHODE ISLAND AV"; }; }, { DistanceFromStart = "1.050716048463951"; Ordinal = 3; Stop = { Lat = "38.91703033447266"; Lon = "-77.03196716308594"; OrgAbbr = "<null>"; OrgId = DcCi; StopCode = 17348; StopId = "DcCi_1445_6674"; StopName = "NW 14TH ST & NW U ST"; }; },

  1. 我不确定这是数组,字典还是组合。我如何区分?

  2. 如何提取“序数”字段以及“停止”数据集中的元素?

  3. 要获取stopsArray数据,我使用了这一行:

    stopsArray = [variantArray valueForKey:@"Stops"];

    我试图用这个来拉第一个Ordinal字段(即1):

    NSMutableArray *array = stopsArray[0]; NSString *string = [array valueForKey:@"Ordinal"]; NSLog(@"string: %@", string);

    但结果是:

    string: ( 1, 2, 3, 4, 5, 6, 7 )

    任何阻止我的头发出现的想法都会受到欢迎。

    我会同时坚持下去。

1 个答案:

答案 0 :(得分:1)

首先,它是一个字典类型的对象数组。

其次,数据似乎没有正确格式化。

它就像一个带有单个字体类型对象的数组,但该单个对象包含所有不同的字典值。

因此你的结果

string: (
    1,
    2,
    3,
    4,
    5,
    6,
    7
)

在我看来,问题是第二个开放式括号

stopsArray: (
        (
             {

尝试这样做......

NSMutableArray *array = stopsArray[0];
NSMutableArray *actualDataArray = array[0];

然后

NSString *string = [actualDataArray[INDEX_OF_DIC_OBJECT] valueForKey:@"Ordinal"];
    NSLog(@"string: %@", string);

Lemme知道它是否有效。

更新了解决方案 什么最终为David DelMonte工作。

NSString *string = [[[stopsArray objectAtIndex:0] objectAtIndex:0] objectForKey:@"Ordinal"];