1

在我的应用程序中,我使用 NSUserDefaults 对象将用户名、密码和服务器 URL 存储在内置的设置应用程序中。如果没有保存数据,用户会看到一个登录界面,登录成功后会保存用户名和密码。然后在我的应用程序中,我有一个显示此信息的视图,但缺少文本,好像数据尚未保存到设置中一样。这是代码:

...
NSUserDefaults* appSettings = [NSUserDefaults standardUserDefaults];
[appSettings setObject:username forKey:USERNAME];
[appSettings setObject:password forKey:PASSWORD];

if ( [appSettings synchronize] ) {

   // display an alert with a positive message
} else {
   // display an alert with a negative message

}

因此,登录后会显示正面消息,但是当我再次获取数据时,那里什么都没有,除非我重新启动应用程序。

我需要做什么来立即保存数据,或者至少在另一个视图控制器需要读取设置之前?

4

1 回答 1

2

NSUserDefaults 对象将其数据存储在内存中,并且是一个全局对象(无论如何,对于您的应用程序而言)。因此,您存储在其中的任何内容都应该立即可供以后尝试访问它的任何内容使用。您不需要在这里调用同步。如果您没有获取数据,则应检查呼叫的顺序,以确保在您认为呼叫时它们被呼叫。

于 2010-01-25T21:14:50.940 回答