在iPhone中保存会话数据
我想在我的应用程序中的不同点存储数据,这些数据可供整个应用程序中的对象访问。类似于php中的会话或全局变量。我知道我可以使用NSUserDefaults,但我不确定如何继续向它添加值,然后访问它。例如,首先我想存储登录期间使用的用户名,然后在第三个屏幕上,我想保存用户从公司列表中选择的公司。然后在第五个屏幕上,我想保存用户选择的位置。然后我有不同的功能,用户可以根据他的选择使用。作为一名新手,如果这是一个愚蠢的问题,我很抱歉,但有人能帮助我如何存储和检索整个应用程序中可访问的多个数据。创建一个单例对象。我知道这不是一个很好的模式,但它是解决您问题的最简单的方法。在iOS设备上,您有各种存储数据的选项。以下是一些您可以考虑的:在iPhone中保存会话数据,iphone,xcode,ios4,nsuserdefaults,Iphone,Xcode,Ios4,Nsuserdefaults,我想在我的应用程序中的不同点存储数据,这些数据可供整个应用程序中的对象访问。类似于php中的会话或全局变量。我知道我可以使用NSUserDefaults,但我不确定如何继续向它添加值,然后访问它。例如,首先我想存储登录期间使用的用户名,然后在第三个屏幕上,我想保存用户从公司列表中选择的公司。然后在第五个屏幕上,我想保存用户选择的位置。然后我有不同的功能,用户可以根据他的选择使用。作为一名新手,如果这是一个愚蠢的问题,我很抱歉,但有人能帮助我如何存储和检索整个应用程序中可访问的多个数据。创建一个单
我相信除此之外还有其他选择。我有兴趣了解他们。我希望这能有所帮助。您在评论中要求我在属性列表中提供代码片段。当然没问题。您需要做的第一件事是创建属性列表文件。只需将属性列表类型的文件添加到项目中。我们称之为DataPoints.plist。在本例中,该文件将包含NSString类型的键值项。在代码示例中,我只是提取属性列表条目并加载一个数组。现在,可以对数组执行任何操作。使用它来加载表视图或其他内容。希望这有帮助。如果有,请您将其标记为已接受的答案。谢谢
NSString *errorDesc;
NSPropertyListFormat format;
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"DataPoints" ofType:@"plist"];
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
propertyListFromData:plistXML
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&errorDesc];
if (!temp) {
// Handle Error
Log(@"Error reading plist: %@, format: %d", errorDesc, format);
}
NSArray *dataPoints = [NSArray arrayWithArray:[temp objectForKey:@"DataPoints"]];
非常感谢您的回复。我想我应该使用你上面评论中的财产清单。此外,我不需要在应用程序启动时获取数据,因为这是动态的,是用户在启动应用程序时选择的。所以每次都不一样。您还可以告诉我如何创建一个属性列表文件,以及如何从中保存和检索数据。我提供了一个属性列表的代码示例。尽管如此,我还是要补充一点,听起来您不需要在应用程序启动之间保存数据。在这种情况下,如果数据不是要消耗大量内存,那么您可以考虑使用内存中的单线程对象,如Joris建议的那样。如果是数据堆,那么为了释放一些内存,您可能希望使用一些将数据转储到持久存储的东西,例如属性列表或核心数据。