gee*_*eks 5 iphone cocoa-touch ios
我想知道是否有办法存储少量数据,而无需使用完整的核心数据API.我只需要在某处存储6个"双重"值...最好的方法是什么?
谢谢,亚历克斯.
Cal*_*leb 24
核心数据只是存储数据的一种方式,只有当您需要它所做的事情时它才有意义.以下是存储数据的五个不错选项:
使用NSUserDefaults.(死简单.)
将数据存储在适当的结构中(例如NSDictionary),并将其存储为属性列表.(非常简单.)
将数据存储在您自己设计的类中NSCoding,然后使用,将该类的实例写入文件NSKeyedArchiver.(适用于存储整个对象图形;这基本上就是IB所做的.光可能需要一两个小时才会亮起,但一旦你理解了它,这是一种非常好的读取和写入对象的方法.)
使用Cocoa Touch的文件系统API,特别是NSFileHandle和NSFileManager.(如果您曾经使用过文件系统,那么从概念上讲很简单.让您完全掌控.)
使用常规的旧POSIX文件系统API.(最适合现有的Unix代码,或者您也希望在其他平台上编译的代码.)
在您进入其中任何一个之前,请阅读Apple的档案和序列化编程指南,用户默认编程主题和文件系统编程指南.
您可以使用NSUserDefaults来实现这一目标(http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html).
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"Prefs"];
[standardUserDefaults synchronize];
}
}
-(NSString*)retrieveFromUserDefaults
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *val = nil;
if (standardUserDefaults)
val = [standardUserDefaults objectForKey:@"Prefs"];
return val;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |