一個(gè)良好性能的 WatchKit 應(yīng)用程序要求在 iPhone 和蘋果手表之間以最小流量進(jìn)行信息傳遞。
你的 WatchKit 應(yīng)用應(yīng)該只更新那些改變了的值而不是控制器屬性中的重載值。尤其是在操作表中行的時(shí)候,只是更新,添加或是移除你更改的內(nèi)容,而不是重新加載整個(gè)表。
為了優(yōu)化你的 WatchKit 應(yīng)用程序的啟動(dòng)時(shí)間,使您的應(yīng)用程序更加有效,應(yīng)該在控制器顯示給用戶后,加載控制器的最初可見區(qū)域下方的內(nèi)容。通過(guò)使用 WKInterfaceController willActivate: 內(nèi)的 dispatch_async 方法,你可以推遲設(shè)置特定的內(nèi)容,直到控制器已經(jīng)顯示出來(lái)。
為了減少分頁(yè)控制器的運(yùn)行時(shí)間,在第一次調(diào)用每個(gè)控制器的 willActivate: 時(shí)要盡可能完成全部的設(shè)置工作。第一次調(diào)用時(shí),管理狀態(tài)和方法只是針對(duì)設(shè)置內(nèi)容的。當(dāng)分頁(yè)處理器被初始創(chuàng)建的時(shí)候在第一頁(yè)調(diào)用 willActivate: 之前的每一頁(yè)都調(diào)用 init: 和 awakeWithContext: 方法。 給用戶顯示第一頁(yè)之前,該系統(tǒng)將等到在 init: 和 awakeWithContext:方法中所有頁(yè)面都做完設(shè)置工作。
通過(guò)盡可能減少隱藏的對(duì)象的數(shù)目以顯著提高裝載時(shí)間。舉個(gè)例子來(lái)說(shuō),一個(gè)控制器布局在一個(gè)控制器場(chǎng)景中的五個(gè)版本,將會(huì)導(dǎo)致在控制器被顯示之前,所有對(duì)象會(huì)被創(chuàng)建。
確保創(chuàng)建合適數(shù)量的表行來(lái)進(jìn)行初始顯示,并延遲附加行的加載直到 willActivate: 完成。在控制器顯示前所有表行被創(chuàng)建,并且你定義越多表行則控制器顯示時(shí)間越長(zhǎng)。