变量丢失其值(iPhone SDK)

变量丢失其值(iPhone SDK),iphone,cocoa,sdk,touch,Iphone,Cocoa,Sdk,Touch,我在头文件中声明一个变量,并在实现中合成它。当视图加载(ViewDidLoad)时,我读取一个plist文件并用一个值填充变量。通过NSLog,我看到变量包含该值。然而,在视图加载之后,我通过一个按钮与用户进行了一些交互,该按钮执行一个方法。在该方法中,我再次检查该值,该值无效。为什么变量在初始加载后不能保持其值 程序.h .... NSString * user_title; ... @property (nonatomic, retain) NSString *user_title; 程序

我在头文件中声明一个变量,并在实现中合成它。当视图加载(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\u title=[array objectAtIndex:0]
不保留变量

改用这个:

self.user_title = [array objectAtIndex:0];
这将使用您合成的setter,并将保留该值