2011-04-14 13 views
2

각 문자열에는 여러 자리 표시 자 (% @)가 포함될 수있는 문자열 목록이 있습니다. 적절한 값을 삽입하려면 stringWithFormat :을 사용하고 싶습니다. 그러나이 방법은 하나의 대체에 대해서만 작동합니다. 모든 값을 대체하는 데 사용할 수있는 것은 무엇입니까? 어떤 종류의 문자열 대체 기능이 있습니까?NSString stringWithFormat : 대체 숫자가 임의의 숫자 인

NSString[] patterns = { "my name is %@ every day", "my name is %@ and it will remain %@" }; 
foreach (NSString s in patterns) 
{ 
    // sometimes the string has one substitution, and sometimes 
    // more. The project where I am doing this throws a BAD_ACCESS 
    // error if more than one substitution is required so need 
    // to take a different approach? 
    print [NSString stringWithFormat:s, "Jack"]; 
} 
+2

가의 코드를 게시하세요 당신이 현재 가지고있는 것. 거기에서 사람들은 제안을 할 수 있습니다. –

+0

+1 검은 개구리. 당신은 배열이나 사전에 값을 가지고 있습니까? –

+1

나는 내가하려고하는 것을 설명하기 위해 예제를 추가했다. – Nippysaurus

답변

3

당신은 위치를 지정하여 반복적으로 같은 인수를 사용하는 stringWithFormat:을 알 수 있습니다 :

내가 (의사 코드의 조금)하는 것을 시도하고있는 무슨의 예입니다. String Format Specifiers을 참조하십시오. 예 :

[NSString stringWithFormat:@"%[email protected] is the first argument, and so is %[email protected]",@"this"]; 
// creates "this is the first argument, and so is this" 
또한 "%의 @"의 모든 인스턴스를 대체 할 stringByReplacingOccurrencesOfString:withString:를 사용할 수 있지만 문자열이 별도로 각 인수 할 것을 요구하고 그들이해야

:

[@"%@ is the first argument, and so is %@" stringByReplacingOccurrencesOfString:@"%@" withString:@"this"]; 
+0

이것은 아마도 트릭을 할 것입니다 ... 내가 집에 갈 때 체크 아웃합니다 :-) 감사합니다. – Nippysaurus

관련 문제