1.write to方式保存到沙盒目錄下的documents文件夾下:
這種方式適合字符串數組的存儲。
//獲得當前程序的沙盒目錄路徑 NSString *path = NSHomeDirectory(); //拼接要保存的文件全路徑,這個方法會自動在@“Document...”前面加斜杠 path = [path stringByAppendingPathComponent:@"Documents/student.plist"];///從文件創建數組 NSArray *array = [NSArray arrayWithContentsOfFile:path]; //將內容寫入文件中 [mArray writeToFile:path atomically:YES];
2.NSUserDefaults的使用:(優點是不用關心存儲格式,存取操作很方便,用於存儲小的變量)(對同一個關鍵字賦值將會對數據重寫,舊數據被清理)
創建一個user defaults
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
添加數據到 user defaults:
[ud setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基本數據類型int, float, bool等,有相應得方法
[ud setBool:YES forKey:UserDefaultBoolKey];
從user defaults中獲取數據:
[ud objectForKey:NCUserDefaultNameKey]
[ud boolForKey: UserDefaultBoolKey];
在程序進入后台執行或者有需要的時候進行
[ud synchonize];
3.[NSBundle mainBundle]方式
bundle是一個目錄,其中包含了程序會使用到的資源. 這些資源包含了如圖像,聲音,編譯好的代碼等等。我們的程序是一個bundle. 在Finder中,一個應用程序看上去和其他文件沒有什么區別. 但是實際上它是一個包含了nib文件,編譯代碼,以及其他資源的目錄. 我們把這個目錄叫做程序的main bundle。bundle可用於本地化。
NSBundle *myBundle = [NSBundle mainBundle];//得到程序的main bundle
NSBundle *goodBundle = [NSBundle bundleWithPath:@"~/.myApp/Good.bundle"];//從指定路徑來取得bundle
//訪問bundle中的資源
NSString *path = [goodBundle pathForImageResource:@"Mom"];
NSImage *momPhoto = [[NSImage alloc] initWithContentsOfFile:path];
//bundle中可以包含一個庫. 如果我們從庫得到一個class, bundle會連接庫,並查找該類:
Class newClass = [goodBundle classNamed:@"Rover"];
id newInstance = [[newClass alloc] init];
如果不知到class名,也可以通過查找主要類來取得
Class aClass = [goodBundle principalClass];
id anInstance = [[aClass alloc] init];
4.數據庫
