NSDictionary을 정의 할 때 키 - 값 쌍의 위치를 어떻게 보장 할 수 있습니까? 예를 들어 NSDictionary 리터럴이 런타임에 위치
내가 정의하는 경우 : 실행시 다음[detailsView setDatasource: @[
@[@"Details",
@{ @"title_1":@"description1",
@"title_2":@"description2",
@"title_3":@"description3",
@"title_4":@"description4" }],
@[@"Actions",
@{ @"Action_1":[NSNull null],
@"Action_2":[NSNull null],
@"Action_3":[NSNumber numberWithBool:false] }]
];
내가 리터럴을 초기화하는 경우는 NSDictionary가 초기화되는 방법 항목
[detailsView setDatasource: @[
@[@"Details",
@{ @"title_2":@"description2",
@"title_3":@"description3",
@"title_4":@"description4",
@"title_1":@"description1" }],
@[@"Actions",
@{ @"Action_3":[NSNumber numberWithBool:false],
@"Action_1":[NSNull null],
@"Action_2":[NSNull null]}]
];
이 문제가 예측할 수 ... 의 다른 순서를
리터럴을 사용할 때 키 - 값 쌍이 정의 된 위치에 있는지 확인하는 방법이 있습니까?- 편집 -
아니 확실한 해결책은 있지만 작동합니다. 내가 종료 업이 같은 일을 :
@[
@[ @"Route details",
@[
@[@"route-direction", @"Route direction", [NSString stringWithFormat:@"%@ → %@", journey[@"from"], journey[@"to"]]],
@[@"poi-count", @"Points of interest", journey[@"pois-count"]],
@[@"date-created", @"Date created", journey[@"created-at"]],
]
],
@[ @"Actions" ,
@[
@[@"favourite", @"Favourite", ([journey objectForKey:@"favourite"] ? [journey objectForKey:@"favourite"] : [NSNumber numberWithBool:false])],
@[@"load",@"Load now",[NSNull null]],
@[@"delete",@"Delete",[NSNull null]],
]
],
[NSNumber numberWithInteger: indexPath.row]]];
당신만큼 당신이 _keys_에 의해 _values_에 액세스하므로 아무 소용도하지 않습니다 질문 도움이 될 수있는, 다른 배열 값
희망을 유지 한 배열 키를 유지하는 대신있는 NSDictionary의 NSArray를를 사용 ('-valueForKey :'또는'-valueForKeyPath :'), 요소의 실제 순서는 실제로는 무의미합니다. 어쨌든 당신은 무엇을 얻고 싶습니까? – holex
다른 tableViews에서 선택한 항목마다 다른 속성 및 동작을 표시하는 ViewController가 필요했습니다. 속성과 값을 설정 한 다음 선택기 이름을 사용하여 해당 항목에 사용할 수있는 작업을 설정합니다. 액션에 대해서는 모든 액션 후에 "삭제"액션을 표시해야 할 수도 있습니다. – slava