2011-01-30 2 views
0

NSString입니다. testString은 내 앱의 값으로 설정되어 있습니다. 그런 다음 UIAlertView에서 버튼을 누른에 대한 응답으로 나는 다음과 같은 코드가 있습니다UIAlertView의 출력에서 ​​NSString을 참조 하시겠습니까?

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 0) { 
     NSLog(@"String: %@", testString); 
    } 
} 

을하지만 중소 이유로, 이것은 항상 충돌이 앱을 발생합니다. 나는 이유를 알 수없는 것 같습니다.

+3

가 어떻게 정의하고 TestString에 설정되어 오른쪽 값을 가지고 확신 할 수 있습니까? testString이 어떻게 생성되고 그 값이 무엇인지 알지 못하는 것 이외에, 지금까지 제공 한 것에는 아무런 문제가 없으므로, 더 많은 코드를 사용하십시오. – WrightsCS

+0

AlertView에서 NSString을 사용할 때 아무 문제가 없습니다. @ WriteCS와 마찬가지로, 그것은 당신의 문자열과 관련이 있어야합니다. 당신은 그것이 "내 앱의 가치로 설정되어있다"고 말하지만, 그것은 우리에게 의미있는 것은 아무것도주지 않습니다. 더 많은 코드, 더 많은 코드. –

+0

당신은 testString을 할당하고 전역으로 만들 필요가있다. (헤더에 정의 됨) – HelmiB

답변

3

아마 당신은 편리한 방법 중 하나를 사용하여 문자열을 만들고이를 유지하지 않으므로 alert의 clickedButtonAtIndex에 대해서는 이미 자동으로 재생되고 있습니다. 당신은 구현에

@property (nonatomic, retain) NSString *testString; 

로 정의한다 :

@synthesize testString; 

만드는 : 할당 해제에

self.testString = [NSString stringWithFormat:@"%@", @"My test string"]; 

[testString release];을. 당신이 clickedButtonAtIndex에서 사용할 때

그런 다음 당신은 당신의 TestString에이

+0

지적했다이 작동하지만, 이제 다른 NSString UIalertView 코드에 대한 응답 내부에서 변경된 및 내가 시도하고 그 NSString 다른 어딘가에 사용할 때 문제가있는 응용 프로그램이 충돌합니다. – Andrew

+0

문제는 아마도 동일합니다. 이 솔루션을 적용하십시오. 어디에서나 사용하기 전에 그것을 보관해야합니다. –

+0

동일한 솔루션을 적용했지만 여전히 충돌이 발생합니다. 나는 그것을 어떻게 참조 할 지 확신하지 못한다. UIAlertView 코드에 대한 응답 내에서 'self.testString2'또는 'testString2'또는 다른 것으로 참조하겠습니까? 어쨌든 이들 중 어느 것도 작동하지 않는 것 같습니다. 그리고 나머지 코드에서, 항상 self.testString2 (또는 다른 것)으로 참조해야합니까, 아니면 첫 번째 testString을 사용하여 처음으로 참조해야합니까? – Andrew

관련 문제