我有一个小的iPhone应用程序,它存储了一个对象列表。用户可以添加和删除对象,但这个列表将保持相当小(大多数用户将有10-30个对象)。 NSUserDefaults
似乎更容易处理,但将sqlite3
更快?只有30个“记录”会有什么明显的差异?NSUserDefaults vs sqlite3
回答
NSUserDefaults用于用户首选项,通常是像NSString或NSNumber这样的基本对象。 Sqlite,序列化属性列表中的对象集合或Core Data都是用于存储用户数据的有效选项,例如您创建的模型对象。
你不会看到速度差异,但最好为你正在做的事情选择正确的机制。如果只是首选项,那么使用NSUserDefaults,否则我会将你的对象序列化为plist。如果你是Cocoa的新手,我会首先避免使用Core Data,甚至是sqlite,给自己一个首先学习基础知识的机会。
我是新来的可可,但不是数据库系统。我读过的大部分教程都表明,在sqlite语句中有很多开销。标准似乎是在启动和缓存更改时读取所有数据,直到应用程序终止。 – respectTheCode 2009-05-30 19:12:47
我只是要继续使用sqlite3。这似乎是这种类型的数据更合乎逻辑的解决方案。 – respectTheCode 2009-05-31 20:02:51
尝试使用NSCoding协议。声明你的类实现NSCoding协议:
@interface Person : NSObject <NSCoding>
上线有望实现以下方法:
-(id)initWithCoder:(NSCoder *)coder;
-(void)encodeWithCoder:(NSCoder *)coder;
你的方法应该是这个样子:
-(void)encodeWithCoder:(NSCoder *)coder {
[super encodeWithCoder:coder];
[coder encodeObject:firstName forKey:@"firstName"];
[coder encodeObject:lastName forKey:@"lastName"];
}
-(id)initWithCoder:(NSCoder *)coder {
[super init];
firstName = [[coder decodeObjectForKey:@"firstName"] retain];
lastName = [[coder decodeObjectForKey:@"lastName"] retain];
return self;
}
- 1. NSUserDefaults vs SQLite3。 NSUSerDefaults是不可变的?
- 2. NSUbiquitousKeyValueStore NSUserDefaults的VS
- 3. Settings.bundle vs NSUserDefaults
- 4. NSUserDefaults setValue vs setInteger
- 5. PHP扩展:SQLite VS SQLite3
- 6. SQLite3 :: createFunction vs内部php函数
- 7. 东京内阁vs iPhone上的SQLite3
- 8. NSUserDefaults&bindings
- 9. UIDatePicker + NSUserDefaults
- 10. NSUserdefaults Persistance
- 11. NSUserDefaults EXC_BAD_ACCESS
- 12. NSUserDefaults:转储NSUserDefaults的standardUserDefaults的结构
- 13. sqlite3的WHERE语句发出
- 14. 使用sqlite3 vs自定义表实现的优点和缺点
- 15. VS单元测试无法打开数据库(sqlite3)
- 16. NSUserDefaults valueForKey错误
- 17. NSUserDefaults帮助
- 18. NSUserDefaults不保存
- 19. Iphone NSUserDefaults麻烦?
- 20. iPhone - NSUserDefaults外围
- 21. CallDirectoryHandler IOS10 nsuserdefaults
- 22. MonUouch中的NSUserDefaults
- 23. NSUserDefaults integerForKey EXC_BAD_ACCESS?
- 24. NSUserDefaults的节能
- 25. NSUserDefaults StandardDefaults错误
- 26. NSUserDefaults的左右
- 27. 清除NSUserDefaults
- 28. NSuserdefaults位置
- 29. 推出NSUserDefaults的
- 30. NSUserDefaults与iOS 8
核心数据是最好的选择现在用于iPhone OS。 – respectTheCode 2010-04-26 20:20:12