【发布时间】:2011-01-09 09:46:32
【问题描述】:
我正在创建一个简单的应用程序来简单地保存一个人的姓名和与此人关联的号码。我为这样的人创建了一个类:
@interface Person : NSObject {
NSString *name;
NSInteger serialNumber;
}
在 mainViewController 中,我创建了一个输入文本字段来输入姓名,然后自动为该人分配一个数字,还有 2 个 UILabel 来显示输入的姓名和序列号。
但是,退出应用程序并重新打开后,所有标签均已清除。我要做的是保持这些变量在退出应用程序时保持原样并显示在标签中。因此,我在应用程序委托中创建了 2 个变量,并尝试在应用程序委托中使用 applicationWillTerminate: 来保存。在 mainViewController 中,我每次输入新名称后都会插入这些代码:
NameAppDelegate *appDelegate = (NameAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.lastPerson.name = aPerson.name;
//currentPerson is an instance variable of the app delegate
appDelegate.lastPerson.serialNumber = aPerson.serialNumber;
NSLog(@"aPerson.serialNumber = %i", aPerson.serialNumber);
NSLog(@"appDelegate.lastPerson.serialNumber = %i", appDelegate.lastPerson.serialNumber);
但是,每次我输入一个新名称时,控制台都会显示 aPerson.serialNumber(在 mainViewController 中)发生了变化,但 appDelegate.lastPerson.serialNumber 却没有变化(它始终为零)。
上面的代码有什么问题吗?
【问题讨论】:
标签: ios objective-c iphone save