나는이 방법을 사용하고 있으며이 종류의 것은 매우 커서이 포스트에 포함시킬 수 없다. 매개 변수로 배열을 가져 와서 객체 (NSStrings)를 테스트합니다. 가끔은 - 항상 그런 것은 아니지만, 메소드는 그 문자열들 중 하나를 포함하는 배열로 자신을 호출합니다. 모든 테스트가 통과되면, NSString은 프로세스를 처리하는 다른 메소드로 전송됩니다. 이 모든 것은 잘 작동하지만 지금은 다른 접근 방식으로 작업하고 있습니다. 메서드를 호출하고 테스트를 성공적으로 통과 한 모든 NSString 배열을 반환하도록합니다. 그러나 그 방법이 스스로를 부르기 때문에 나는 이것을 어떻게하는지 정말로 모른다. 이를 처리하는 대신 성공적으로 테스트 한 모든 NSString을 배열에 추가 할 수 있지만 모든 배열에서 배열에 액세스 할 수 있어야합니다. 여기서 추천하는 것은 무엇입니까? 나는 .. 공용 변수를 피하기 위해 싶습니다재귀 적 방법의 프로그래밍 구조에 관한 질문
- (void)doStuff: (NSArray *)array { //A quick (very short) example of what I have now.
for (NSString *string in array) {
if ([string isEqualToString: @"test"])
[self doStuff: [NSArray arrayWithObject: @"test2"]];
else
[self processStuff: string];
}
}
두 번째 매개 변수가 쉽게 보입니다. 나는 그것을 시험 할 것이다. 재귀없이 작업을 수행하는 것이 제 목적을 위해 쉽게 수행 할 수 있다고 생각하지 않습니다. –
+1 -이 작업을 수행하는 표준 방법입니다. 그러나'results' 배열을 재귀 호출에 전달하는 것을 잊지 마십시오! (또한 "real"입력만을 취하는 간단한 입력 메소드가있는 일반적인 변형에 주목할 필요가 있습니다.이 경우 "result"는 여분의 상태 변수를 설정하고 주 재귀 함수를 호출합니다. 마지막으로 결과를 언 패킹하거나 반환하는 params로 상태 변수를 포함합니다.) – walkytalky