<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 沙盒分組目錄清單 #### 1 Documents 用于存儲用戶生成的文件、其他數據及其他程序不能重新創建的文件,默認文件通過iCloud自動備份。如果不需要iCloud備份,則設置標記 ~~~ 注明不備份 NSURLIsExcludedFromBackupKey 1.1 讀取Documents目錄代碼 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"path:%@", path); //1.2 標記不備份文件 + (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); NSError *error = nil; BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; if(!success){ NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); } return success; } ~~~ #### 2 Library 存儲項目緩存,常用設置等 ~~~ 2.1 讀取Cache目錄代碼 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path); 2.2 讀取Library目錄 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path); ~~~ #### 3 temp 只是臨時使用的數據應該保存到 /tmp 文件夾。盡管 iCloud 不會備份這些文件,但在應用在使用完這些數據之后要注意隨時刪除,避免占用用戶設備的空間 ~~~ 3.1讀取temp文件夾 NSString *tmpDir = NSTemporaryDirectory(); NSLog(@"%@", tmpDir); ~~~ #### 4 項目自帶的.bundle資源束 ~~~ 項目自帶的資源存放在.bundle中這些資源只讀不能寫 NSString *defaultDBPath = [[NSBundlemainBundle] resourcePath]; ~~~ ### 存儲方法 #### plist文件存儲 獲取沙河路徑: NSString *Path = NSHomeDirectory(); 獲取 Documents 的路徑 在某個范圍搜索某個文件夾的路徑 ~~~ //參數介紹: 1. directory 表示獲取哪個文件夾目錄 2. domainMask 表示查找范圍(NSUserDomainMask 表示在用戶手機上查找) 3. rxpandTitle 表示是否展開波浪號 NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; //拼接文件路徑 NSString *filePath = [docPath stringByAppendingPathComponent:@"array.plist"]; //存儲到plist文件 [數組/字典/基本數據類型對象 writeToFile:filePath atomically:YES]; //讀取: //調用對應的方法進行讀取 例如數組: NSArray *array = [NSArray arrayWithContentsOfFile:filePath]; ~~~ #### 偏好設置存儲 [NSUserDefaults standardUserDefaults] 是專門用來做偏好設置存儲的 快速做一些簡單的鍵值對的存儲, 底層的封裝方式: 就是包裝了一個字典 不需要關心文件名 ~~~ //iOS8之前, 通常還需要做一個同步操作, 就是把緩存數據同步到硬盤當中 [[NSUserDefaults standardUserDefaults] setObject:存儲對象 forKey:@"鍵值"]; //iOS8之前, 一定做一個同步操作, 及時把緩存數據同步到硬盤當中 [[NSUserDefaults standardUserDefaults] synchronize]; //讀取: NSString *account = [[NSUserDefaults standardUserDefaults] objectForKey:@"鍵值"]; ~~~ #### 歸檔存儲 存儲在MARK:中可以存儲自定義對象 ~~~ //獲取文件全路徑 //路徑一定要展開, file 必須是全路徑 NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; //拼接文件名 NSString *filePath = [cachePath stringByAppendingPathComponent:@"person.data"]; //歸檔 //對象要歸檔, 一定要遵守 <NSCoding> 協議, 而且要實現 encodeWithCoder 方法 [NSKeyedArchiver archiveRootObject:p toFile:filePath]; //讀取: Person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; //將對象歸檔和解檔時必須寫這兩個方法 告訴對象哪些屬性需要歸檔 和解檔 //歸檔:對象歸檔的時候調用(當將一個自定義對象保存到文件的時候就會調用) - (void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeObject:_name forKey:NameKey]; [aCoder encodeInteger:_age forKey:AgeKey]; } //解檔:對象解檔的時候調用(當從文件中讀取一個對象的時候就會調用該方法) - (instancetype)initWithCoder:(NSCoder *)aDecoder { super -> NSObject 沒有遵守 NSCoding 協議 //如果父類沒有遵守 NSCoding 協議, 就不需要調用 initWithCoder 方法 if (self = [super init]) { //一定不能忘記賦值 _name = [aDecoder decodeObjectForKey:NameKey]; _age = [aDecoder decodeIntForKey:AgeKey]; } return self; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看