<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                @前面講了sqlite存儲數據,現在來說一個存儲類似用戶配置(常見的如判斷App是否是第一次啟動而實現引導頁)數據的類----NSUserDefaults NSUserDefault的使用比較簡單: NSUserDefaults *mySettingData =?[NSUserDefaults standardUserDefaults]; ? 創建NSUserDefaults對象之后即可往里面添加數據,它支持的數據類型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系統定義的數據類型,如果要存放自定義的對象(如自定義的類對象),則必須將其轉換成NSData存儲: ~~~ NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil] [mySettingData setObject:arr forKey:@"arrItem"]; [mySettingData setObject:@"admin" forKey:@"user_name"]; [mySettingData setBOOL:@YES forKey:@"auto_login"]; [mySettingData setInteger:1 forKey:@"count"]; ~~~ @往NSUserDefaults添加數據后,它們就變成了全局的變量,App中即可讀寫NSUserDefault中的數據: ~~~ NSUserDefaults *mySetting = [NSUserDefaults standardUserDefaults]; NSLog(@"arrItem=%@", [mySetting objectForKey:@"arrItem"]); NSLog(@"user_name=%@", [mySetting objectForKey:@"user_name"]); NSLog(@"count=%d", [mySetting integerForKey:@"count"]); ~~~ @如果想刪除某個數據項,可以使用removeObjectForKey刪除數據: [mySetting?removeObjectForKey:@"arrItem"]; ? @需要注意的是,NSUserDefaults是定時把緩存中的數據寫入磁盤的,而不是即時寫入,為了防止在寫完NSUserDefaults后程序退出導致的數據丟失,可以在寫入數據后使用synchronize強制立即將數據寫入磁盤: [mySetting?synchronize]; ? 運行上面的語句后,NSUserDefaults中的數據即被寫入到.plist文件中,如果是在模擬器上運行程序,可以在Mac的/Library/Prefereces目錄下面找到一個文件名為com.apple.PeoplePicker.plist的plist文件,用Xcode打開該文件,可以看到剛才寫入的數據。 @pragma mark -引導頁只執行一次 ~~~ if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){ 這一行-->加入引導頁[self startYinDaoYe] [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstStart"]; [[NSUserDefaults standardUserDefaults] synchronize]; } ~~~ @系統定義的數據類型,NSUserDefault**配合NSKeyedArchiver和NSKeyedUnarchiver做本地持久化** 這里用數組做個舉例: ~~~ static NSString *const archiverKey = @"DataArray"; - (void)_testNSKeyedArchiverAndNSKeyedUnarchiver { NSArray *setDataArray = @[@"1",@"2",@"3"]; NSData *archiverData = [NSKeyedArchiver archivedDataWithRootObject:setDataArray]; [[NSUserDefaults standardUserDefaults] setObject:archiverData forKey:archiverKey]; // 切莫忘記,依舊調用 synchronize 立即寫入沙盒中 [[NSUserDefaults standardUserDefaults] synchronize]; NSArray *getDataArray = [NSArray new]; NSData *unarchiverData = [[NSUserDefaults standardUserDefaults] objectForKey:archiverKey]; getDataArray = [NSKeyedUnarchiver unarchiveObjectWithData:unarchiverData]; NSLog(@" getDataArray = %@",getDataArray); } ~~~ @切記,數組類型為NSArray的時候可以直接getDataArray = [NSKeyedUnarchiver unarchiveObjectWithData:unarchiverData]; 如果數組類型是NSMutableArray,則必須,getDataArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:unarchiverData]]; 否則getDataArray為nil **@NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary. 如果把一個自定義的類存到一個NSArray里,然后再存到NSUserDefaults里也是不能成功的。 那怎么辦呢? 讓這個自定義類實現協議中的** **- (id) initWithCoder: (NSCoder *)coder方法** **- (void) encodeWithCoder: (NSCoder *)coder方法,** **然后把該自定義的類對象編碼到NSData中,再從NSUserDefaults中進行讀取。** **具體可以回看我的-->數據持久化(一)序列化與反序列化**
                  <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>

                              哎呀哎呀视频在线观看