내 .m 파일에서 채우고 다시 사용하려는 문자열 (현재 내 .h 파일에 정의되어 있음)이 있습니다. 여기 동일한 .m 파일에서 NSString 재사용
는 설정이다 :- 사용자가 내 인터페이스 btnA이 메소드를 실행 (buttonAClicked)에 btnA을 클릭 할있는 NSString의 값을 설정에 "foo는"
- 사용자가 내 인터페이스에서 btnB을 클릭
- btnB는 NSString의 값 (예 : "foo")을 반환하는 메서드 (buttonBClicked)를 실행합니다.
- 사용자가 btnA를 다시 클릭하고 메서드가 NSString "새 값"을 업데이트합니다 ...
- 이익! 나는 더 이상 countOfMatches 문자열을 읽을 수없는 것 같습니다
I 방법에 대한 아이디어 -
/* Modal_TestAppDelegate.h */ // in the @interface block // @public NSString *countOfMatches; // in the main area of the .h // @property (nonatomic, readwrite, reatain) NSString *countOfMatches; /* Modal_TestAppDelegate.m */ @synthesize countOfMatches; -(void)applicationDidFinishLaunching:(UIApplication *)application{ ... other code ... self.countOfMatches = [[NSString alloc] initWithFormat:@"0"]; } -(void)updateButtonClicked:(id)sender{ countOfMatches = @"1"; NSLog(@"countOfMatches is now: %@",countOfMatches); } -(void)readButtonClicked:(id)sender{ NSLog(@"I wonder what countOfMatches is set to now? %@",countOfMatches); // CRASH! }
나는 충돌하고있어 어디에 "readButtonCicked 영역은 다음과 같습니다
는 일부 코드입니다. 단일 클래스 전체에서 단순히 "변수"를 재사용 할 수 있습니다 (.m 구현을 "클래스"라고 올바르게 호출하는 경우). 이것이 내 첫 번째 시도이며, 필자가 가지고있는 여러 Xcode 및 iPhone SDK 책에서 페이지를 추출하고 있습니다.).
고마워!
정리 해줘서 고마워 - 이제 어떻게하면 두 번째 작업 내에서 액세스 할 수 있습니까? 게시 한 내용을 테스트 해보지 만, "readButtonClicked"메소드 내부의 countOfMatches에 여전히 액세스 할 수없는 것 같습니다. –
핫도그! 그게 효과가있는 것 같습니다. 지금, 내 "- (void) readButtonClicked : (id) 보낸 사람 { NSLog (@"countOfMatches가 현재 설정되어있는 것은 아닌가? % @ ", countOfMatches); // CRASH! } "countOfMatches"반환. 마지막으로, 웹 페이지의 오른쪽 부분을 scrollTo하기 위해 UIWebView에서 일치하는 항목의 수가 실제로 반복됩니다. 엄청 고마워! –
음, countOfMatches는 readButtonClicked의 범위 안에 존재하지 않으며 updateButtonClicked와 readButtonClicked가 같은 레벨에 존재하기 때문에 두 메소드 모두 countOfMatches를 "볼"수 있어야합니다. –