가변 가치 손실 (iPhone SDK)
문제
헤더 파일에 변수를 선언하고 구현에서 합성합니다. 보기가로드되면 (viewDidLoad) PLIST 파일을 읽습니다. 내 NSLOG를 사용하면 변수에 값이 포함되어 있음을 알 수 있습니다. 그러나 뷰로드 후 버튼을 통해 사용자와 약간의 상호 작용이 있습니다. 이 방법에서 나는 값을 다시 확인하고 유효하지 않습니다. 초기 부하 후 변수가 값을 유지하지 않는 이유는 무엇입니까?
프로그램 .h
....
NSString * user_title;
...
@property (nonatomic, retain) NSString *user_title;
프로그램 .m
@synthesize user_title;
-(void)viewDidLoad{
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
user_title = [array objectAtIndex:0];
[array release];
}
....
-(IBAction)user_touch_screen:(id)sender
{
user_label.text = user_title; //user_title has an invaliud value at this point
....
해결책
user_title = [array objectAtIndex:0]
변수를 유지하지 않습니다.
대신 사용하십시오 :
self.user_title = [array objectAtIndex:0];
그것은 당신이 합성 한 세터를 사용하고 값을 유지합니다.
다른 팁
배열에서 얻는 값을 유지해야합니다.
제휴하지 않습니다 StackOverflow