문제

헤더 파일에 변수를 선언하고 구현에서 합성합니다. 보기가로드되면 (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];

그것은 당신이 합성 한 세터를 사용하고 값을 유지합니다.

다른 팁

배열에서 얻는 값을 유지해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top