2012-08-09 6 views
1

내 앱에서는 수표 금액을 줄이기 위해이 방법이 최선이라고 결정 했으니 까 어떻게해야할지 모르겠다.NSString에서 변수 가져 오기?

그래서 나는 그들이이 있고, #DEFINE의 한 무리가 있습니다 ... 상태 1, 상태 2, 상태 3, 등

어쨌든 내가 UIButtons을 가지고 태그 1 버튼의 이미지가 상태 1에 의해 결정된다, 등 ...

어쨌든 지금 나는 같은 것을 할 지점에 도착 : 그래서 지금 내가있는 NSString에서 상태 1 또는 상태 2 또는 상태 3과 같은 변수를 얻는 방법

NSString *variableString = [NSString stringWithFormat:@"state%i", theButton.tag]; 

을 그 나는 단지 있어?

답변

3

@ "state1", @ "state2"...와 같은 문자열을 키로 사용하고 이미지에 대한 일치하는 참조를 키의 개체로 사용하십시오.

+0

나는 그렇게 할 수 없다. 나는 그렇게해야한다. 나는 이것이 가능하다는 것을 안다. –

+0

방법을 배우는 데 관심이 있습니다. 필자는 Perl이나 쉘 스크립팅과 같은 언어로만 익숙해졌습니다. –

0
const int value = [[someString substringFromIndex:nCharsToTrim] intValue]; 

양자 택일로, 당신은 문자를 액세스하여 불필요한 문자열 생성을 피할 수있는 것은 값

-[NSString characterAtIndex:] (그리고 아마 당신은이 시나리오에서 유효한 상태 값으로 0을 사용하지 않아야합니다)

+0

이것이 어떻게 작동하는지 혼란 스럽습니다. NSString이 있다고 말하면서 : state1 (그러나 NSString 형식으로), 위의 코드는 변수의 값을 변수 형식의 state1로 변환하겠습니까? –

+0

나의 예제는 단지 그것을'tag'로 다시 변환합니다. 문제의 뷰 중에서 뷰를 식별하려면'tag' 값을 사용해야합니다 (물론 그 태그는 고유해야합니다). – justin

+0

그건 작동하지 않습니다. 나는 숫자가 아니라 그 앞에있는 본문을 필요로한다. 나는 이것이 Obj-C로는 가능하지 않다는 생각을 갖기 시작했다. –

2

당신은 사용할 수 있습니다 : 그러나

[self valueForKey:variableString]; 

경우에서 문자열 값이 변수 또는 속성과 일치하지 않으면이 호출은 예외를 throw합니다. @try { ... } @catch ... 블록을 사용하여 예외를 catch 할 수 있습니다. 예외를 포착하고 처리하지 않으면 앱이 실패합니다.

+0

이것을 사용할 수 없다. 어떻게 든 NSString을 변수로 변환 할 방법이 필요하다. 나는 해결 방법을 찾고 있지 않다. (가혹한 것처럼 들릴 의도는 아니다.) –

+0

@iBradApps - 문자열에서 가져온 이름으로 변수를 동적으로 생성하고 싶습니까? 나는 당신이 기존의 변수에 접근하려하고, valueForKey와 대응하는'setValue : forKey'를 정확히 이해하고 있다는 것을 이해했다 - 문자열을 통해 "변수"에 접근했다. (누락 된 변수를 처리하기 위해 구현할 수있는'setValue : forUndefinedKey :'및'valueForUndefinedKey :'도 있습니다.) 내가 분명히 오해 한 것처럼 실제로하려고하는 것에 흥미가 있습니다 ... – CRD