在Cocoa Touch框架中,有UIApplication、UIAccelerimeter、NSUserDefaults和NSNotificationCenter等單例類。另外,NSFileManager和NSBundle類雖然屬於Cocoa框架的內容,但也可以在Cocoa Touch框架中使用(Cocoa框架中的單例類有NSFileManager、NSBundle、NSWorkspace和NSApplication等)。
1.UIApplication
UIApplication類的實例提供了應用程序的集中控制點來保持應用的狀態。UIApplication實例總是分配給應用程序委托對象(UIApplicationDelegate),通過應用程序委托對象來響應低內存、應用啟動、後台運行和應用終止等事件。
UIApplication類有很多方法和屬性,下面重點介紹其中幾個。
· + sharedApplication方法。創建和獲得UIApplication實例的方法。
· idleTimerDisabled屬性。設定和獲得“空閒時間禁止”的狀態。idleTimeDisabled屬性的默認值是NO,即默認情況下系統會鎖定屏幕。當idleTimerDisabled=YES時,則不會開啟“空閒時間禁止”狀態,系統不會鎖定屏幕。開啟這項設定需要謹慎,它會使你的應用比較耗電。
· - openURL:方法。可以打開一些內置的iOS應用,其中包括打開浏覽器、打開Google地圖呀、撥打電話、發送短信和發送E-mail等。
2.UIAccelerometer
單例類UIAccelerometer前面也講過,它可以訪問重力加速計硬件設備,實時獲得設備在x軸、y軸和z軸方向上的重力加速度。
+ sharedAccelerometer方法是創建和獲得UIAccelerometer實例的共享方法。
與UIApplication類似,UIAccelerometer也有對應的委托對象,其委托對象為UIAccelerometerDelegate。UIAccelerometer將實例分配給委托對象UIAccelerometerDelegate,然後由委托對象響應重力加速計事件。
3.NSUserDefaults
單例類NSUserDfaults可以很方便的讀取應用設置項目。
+ standardUserDefaults方法是創建和獲得NSUserDefaults實例的靜態方法。
4.NSNotificationCenter
單例類NSNotificationCenter提供信息廣播通知,它采用觀察者模式的通知機制。
+ defaultCenter方法是創建和獲得NSNotificationCenter實例的共享方法。
5.NSFileManager
NSFileManager提供了訪問文件系統的通用操作,可以定位、創建、復制文件和文件夾。在iOS 5和Mac OS X v10.7之後,它還可以管理存儲在iCloud上的數據。
+ defaultManager方法是創建和獲得NSFileManager實例的方法。除了該方法外,創建NSFileManager對象時還可以使用實例構造方法- init。這兩種方法有著比較大的差別,+ defaultManager方法總是返回相同的NSFileManager對象,但如果要使用委托(NSFileManagerDelegate)完成基於文件的操作並接受通知,應該使用- init方法創建一個新的實例,而不是使用共享的對象。
6.NSBundle
NSBundle提供了動態加載(或卸載)可執行代碼、定位資源文件以及資源本地化、訪問文件系統等功能。
+ mainBundle方法是創建和獲得NSBundle實例的共享方法。