首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 沙盒創建用戶專屬目錄並保存數組、圖片

     編輯:程式設計綜合問答

創建用戶目錄

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *userFolder = [documentsDirectory stringByAppendingPathComponent:@"UniqueUserAccount"];

NSError *error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:userFolder]) {
    [[NSFileManager defaultManager] createDirectoryAtPath:userFolder 
                                         withIntermediateDirectories:YES 
                                                          attributes:nil 
                                                           error:&error];
}

保存數組 (NSArray/NSMutableArray)

NSString *arrayPath = [userFolder stringByAppendingPathComponent:@"data.plist"];
[yourArray writeToFile:arrayPath atomically:YES]; // 自動序列化為 plist

// 讀取
NSArray *loadedArray = [NSArray arrayWithContentsOfFile:arrayPath];

保存圖片

for (int i = 0; i < imageArray.count; i++) {
    UIImage *image = imageArray[i];
    NSString *imgPath = [userFolder stringByAppendingPathComponent:[NSString stringWithFormat:@"image_%d.png", i]];
    NSData *pngData = UIImagePNGRepresentation(image);
    [pngData writeToFile:imgPath atomically:YES];
}

注意

  • `writeToFile:atomically:YES` 會先寫臨時文件再重命名,**防止寫入中斷損壞數據**。
  • 數組元素必須是**屬性列表兼容類型**(NSString、NSNumber、NSDate、NSArray、NSDictionary、NSData),自定義對象需實現 `NSCoding` 或用 `NSKeyedArchiver`。
  • 大量圖片建議存入 **子目錄** 或使用 **Core Data / SQLite** 管理元數據,避免單目錄文件過多影響性能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved