en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

12.02.2010

應用程式內部狀態的存取


在應用程式關閉之後(並非退到背景),可將相關變數儲存起來,以便下次啟動時使用。應用程式狀態的存取,這裡示範的是布林狀態(Boolean),其他的型態變數則以此類推。(View-based Template)

//宣告一個指標(Key),此指標必須是NSString型態,這個指標將在應用程式結束時儲存變數值。
NSString *State1Key = @"stateKey1";
NSString *State2Key = @"stateKey2";
NSString *State3Key = @"stateKey3";
NSString *State4Key = @"stateKey4";
NSString *State5Key = @"stateKey5";

//當Switch改變時被呼叫的函式
-(IBAction) State1Switched:(id)sender {

    //將該Switch的狀態存在自行定義的BOOL型態變數中
    onState1 = State1Switch.on;

    //將BOOL型態變數,存入指標(Key)內永久保存,直到該應用程式被移除
    [[NSUserDefaults standardUserDefaults] setBool:onState1 forKey:State1Key];
}

//自行定義的函式,目的是在程式一開始執行時就取得上次執行結束前的相關狀態
-(void) LoadStateData {

    //從指標(Key)中取出先前所保留的BOOL參數值
    onState1 = [[NSUserDefaults standardUserDefaults] boolForKey:State1Key];
    onState2 = [[NSUserDefaults standardUserDefaults] boolForKey:State2Key];
    onState3 = [[NSUserDefaults standardUserDefaults] boolForKey:State3Key];
    onState4 = [[NSUserDefaults standardUserDefaults] boolForKey:State4Key];
    onState5 = [[NSUserDefaults standardUserDefaults] boolForKey:State5Key];

    //將取出的參數值賦予Switch
    State1Switch.on = onState1;
    State2Switch.on = onState2;
    State3Switch.on = onState3;
    State4Switch.on = onState4;
    State5Switch.on = onState5;
}






3 則留言:

  1. 請問下~在onState1 出現錯誤 Use of undeclared ' onState1' 可是不是//將該Switch的狀態存在自行定義的BOOL型態變數中

    回覆刪除
    回覆
    1. 布萊恩 你好:
      你要自行定義 onState1為bool型態,他這邊的意思是你沒有宣告onState1。

      刪除