내 응용 프로그램에서는 마지막 경로 구성 요소 만 갖는 NSDictionary에 값을 삽입해야합니다. 예 : 내 주어진 사전은NSDictionary의 키 경로
a = 1;
b = 2;
c = 3;
d = {
e = 4;
f = 5;
g = {
h = 6;
};
};
j = {
k = 7;
};
이며, k
의 값을 변경해야합니다. 경로 구성 요소는 @[@"j", @"k"]
이어야합니다. 그것은 잘못된 방법,
- (void)recurse:(NSDictionary*)dict keyToFound:(NSString*)ktf stack:(NSMutableArray*)stack parent:(NSString*)parent
{
for (NSString *key in [dict allKeys]) {
if ([key isEqualToString:ktf]) {
[stack insertObject:key atIndex:[stack count]];
return;
}
else {
if ([[dict valueForKey:key] isKindOfClass:[NSDictionary class]]) {
NSDictionary *d = [dict valueForKey:key];
[stack insertObject:key atIndex:[stack count]];
[self recurse:d keyToFound:ktf stack:stack parent:key];
//[stack removeObject:key];
}
}
}
}
하지만, obviuos : 나는 그런 뭔가를 시도했다.
왜 첫 번째 포인터를 수정하지 않으면 배열에 이중 포인터가 필요하다고 생각합니까? – CodaFi
@CodaFi 결코 신경 쓰지 마라, 그것은 단지 펜의 미끄럼이다. 당분간 저는이 재귀와 혼동합니다. – Akki
그래서 질문은 당신이 @ "j", @ "k"경로를 찾으려고한다는 것을 의미합니다. 그리고 당신의 코드는 실제로 당신이 @ "k", @ "j"를 얻는다는 것을 의미합니까? 당신이 무엇을 요구하고 있는지 분명하지 않습니다. – Wain