iOS網路編程-iCloud索引值資料存放區編程執行個體

來源:互聯網
上載者:User

iCloud索引值資料存放區設計

iCloud索引值資料存放區編程執行個體,畫面中有兩個開關控制項,左圖是裝置1點擊“設定iCloud資料”按鈕,將控制項狀態儲存到iCloud伺服器。右圖是裝置2畫面,過幾秒鐘後裝置2收到變更通知。

 

 

配置Xcode工程

使用Xcode建立一個iOS工程,工程建立好之後,選擇TAGETS→MyNotes→Summary→Entitlements,我們可以在這裡配置授權資訊。

然後我們還需要應用設定程式碼簽署標識,程式碼簽署標識需要選擇這個配置概要檔案的。選擇TAGETS→MyNotes→Code Signing Identity

設定完成之後可以開始編碼工作了。

代碼實現

首先是需要註冊NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知,並同步資料,代碼參考ViewController.m的viewDidLoad方法:

- (void)viewDidLoad{[super viewDidLoad];NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore]; ①[[NSNotificationCenter defaultCenter]  ②addObserverForName:NSUbiquitousKeyValueStoreDidChangeExternallyNotificationobject:storequeue:nilusingBlock:^(NSNotification *note) { ③//更新控制項狀態[_switchSound setOn:[store boolForKey:UbiquitousSoundKey]]; ④[_switchMusic setOn:[store boolForKey:UbiquitousMusicKey]];  ⑤UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@”iCloud變更通知”message:@”你的iCloud儲存資料已經變更”delegate:nilcancelButtonTitle:@”Ok”otherButtonTitles:nil, nil];[alert show];}];[store synchronize];  ⑥//初始化控制項狀態[_switchSound setOn:[store boolForKey:UbiquitousSoundKey]];  ⑦[_switchMusic setOn:[store boolForKey:UbiquitousMusicKey]];  ⑧ }

 

儲存資料到iCloud儲存,代碼ViewController.m的setData:方法:

- (IBAction)setData:(id)sender {NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];//儲存到iCloud[store setBool:_switchSound.isOn forKey:UbiquitousSoundKey];[store setBool:_switchMusic.isOn forKey:UbiquitousMusicKey];[store synchronize];

 

}

因為是BOOL值所以儲存使用的方法是setBool:forKey:。最後不要忘記解除註冊的通知,在視圖控制器中解除通知可以在didReceiveMemoryWarning方法中完成:

- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];[[NSNotificationCenter defaultCenter] removeObserver:self];}

 

 

由於本應用中只有一個通知,因此可以使用[[NSNotificationCenter defaultCenter] removeObserver:self]語句解除全部通知,而不影響其它的通知,如果還有其它的通知我們要慎用這個語句。

編程完成代碼我們可以測試一下,這個應用的測試很麻煩,需要兩個真實裝置而不能在模擬器上進行。運行兩個裝置,點擊其中一個裝置的“設定iCloud資料”按鈕,過幾秒鐘後另外一個裝置收到變更通知。

出自《iOS網路編程與雲端應用最佳實務》作者:關東升 新浪微博@tony_關東升

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.