0

ヘッダーファイルで変数を宣言し、実装で合成します。ビューがロードされると(ViewDidLoad)、plistファイルを読み取り、変数に値を入力します。NSLogを使用すると、変数に値が含まれていることがわかります。ただし、ビューが読み込まれた後、メソッドを実行するボタンを介してユーザーと対話します。そのメソッドの中で、値を再度確認しましたが、無効です。変数が初期ロード後にその値を維持しないのはなぜですか?

program.h

....
NSString * user_title;
...
@property (nonatomic, retain) NSString *user_title;

program.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
   ....
4

2 に答える 2

5

user_title = [array objectAtIndex:0]変数を保持しません。

代わりにこれを使用してください:

self.user_title = [array objectAtIndex:0];

合成したセッターを使用し、値を保持します。

于 2009-10-27T01:30:32.323 に答える
2

配列から取得した値を保持する必要があります。

于 2009-10-27T01:30:10.103 に答える