- (void)viewDidLoad {安全
[super viewDidLoad];ide
self.view.backgroundColor=[UIColor lightGrayColor];函數
// 建立字符串持久化按鈕atom
self.buttonString=[[UIButton alloc]initWithFrame:CGRectMake(100, 50, 200, 50)];spa
[self.buttonString setTitle:@"字符串持久化" forState:UIControlStateNormal];orm
self.buttonString.backgroundColor=[UIColor greenColor];對象
// 方法調用字符串
[self.buttonString addTarget:self action:@selector(dataPersistence) forControlEvents:UIControlEventTouchUpInside];get
[self.view addSubview:self.buttonString];string
}
//數據持久化
-(void)dataPersistence
{
// 字符串持久化
//獲取Documents文件目錄:常量NSDocumentDirectory代表咱們正在查找Documents目錄的路徑。第二個常量NSUserDomainMask代表咱們但願將搜索限制在應用的沙盒內,在OS X中代表咱們但願該函數查看用戶的主目錄。
NSArray *arrayStr=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//表示將文件放入Documents文件的最後一個,即path做爲最後一個對象
NSString *path=[arrayStr lastObject];
//@"ANewFile.plist"爲新文件名,方法調用後 ,newPathStr 中存放了文件 ANewFile.plist 在 Documents 目錄中的完整路徑
NSString *newPathStr=[path stringByAppendingPathComponent:@"ANewFile.plist"];
NSLog(@"%@",newPathStr);
//先建立一個NSString(字符串)類型的對象,而後調用實例方法 writeToFile:atomically 將參數寫入文件中
NSString *myFile=@"NewString";
[myFile writeToFile:newPathStr atomically:YES encoding:NSUTF8StringEncoding error:nil];
// 說明:這裏的atomically參數讓該方法將數據寫入輔助文件,而不是寫入指定位置。成功寫入該文件以後,輔助文件將被複制到第一個參數指定的位置。這是更安全的寫入文件的方法,由於若是應用在保存期間崩潰,則現有文件(若是有)不會被破壞。儘管增長一點開銷,可是多數狀況下仍是值得的。
// 說明:這裏的myFile 是字符串,因此是字符串的持久化,他能夠用Array,Dictionary,Data等能夠被序列化的類型;能夠被序列化的類型有:
1)NSArray、NSMutableArray
2)NSDictionary、NSMutableDictionary
3)NSData、NSMutableData
4)NSString、NSMutableString
5)NSNumber
6)NSDate
//獲取幾種沙盒目錄的方法
//獲取Documents目錄
NSArray *arrayStr=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path=[arrayStr lastObject];
//獲取Library目錄方法
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = paths[0];
//獲取tmp目錄方法
NSString *tempPath = NSTemporaryDirectory();
NSString *filename = [tempPath stringByAppendingPathComponent:@"theFile.txt"];