数据存储
File( 文件型)
FileBrowser
Swift-FileBrowser
Cache( 缓存型)
NSUserDefault
类似于
- NSData
- NSString
- NSNumber
- NSDate
- NSArray
- NSDictionary
WriteData( 写入数据)
创建一个
NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
//添加数据到 user defaults:
[accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基本数据类型
[accountDefaults setBool:YES forKey:UserDefaultBoolKey];
如果是
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Coding Explorer", forKey: "userNameKey")
ReadData( 读取数据)
从
[accountDefaults objectForKey:NCUserDefaultNameKey]
[accountDefaults boolForKey: UserDefaultBoolKey];
如果是
let defaults = NSUserDefaults.standardUserDefaults()
if let name = defaults.stringForKey("userNameKey")
{
println(name)
}
CoreData
SQLite
FMDB
SQLite.swift

Realm
Primary Keys
@interface Dog : RLMObject
@property int key;
@property NSString *name;
@property NSInteger age;
@end
@implementation Dog : RLMObject
+ (NSString *)primaryKey {
return @"key";
}
@end
RLM_ARRAY_TYPE(Dog)
@interface Owner : RLMObject
@property int key;
@property NSString *name;
@property RLMArray<Dog> *dogs;
@end
@implementation Owner : RLMObject
+ (NSString *)primaryKey {
return @"key";
}
@end
在插入数据时,如果发现主键中数据存在重复的则会抛出异常:
Owner *owner = [Owner createOrUpdateInDefaultRealmWithObject:@{
@"key": @0,
@"name": @"Tim",
@"dogs": @[
@{@"key": @5, @"name": @"Rex", @"age": @3}
]
}];
NSLog(@"Number of owners: %u", (unsigned)[Owner allObjects].count);
NSLog(@"Number of dogs: %u", (unsigned)owner.dogs.count);
for (Dog *dog in owner.dogs) {
NSLog(@"Dog %@", dog);
}