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