1. 什麼是UIApplication UIApplication 對象是應用程式的象徵,不能手動創建,不能 alloc init,一個應用程式只允許 一個 。 每個應用都有自己的 UIApplication 對象,而且是單例。 UIApplication 對象是應用程式的象徵,不能手動創建,不能 ...
1. 什麼是UIApplication
-
UIApplication 對象是應用程式的象徵,不能手動創建,不能 alloc init,一個應用程式只允許 一個 。
-
每個應用都有自己的 UIApplication 對象,而且是單例。
通過 [UIApplication shareApplication] 可以獲取這個單例對象。
弄成單例的原因:
UIApplication 對象是用來設置應用全局信息的,一個應用程式如果有很多 UIApplication 對象,都不知道聽誰的。
-
一個iOS程式啟動後創建第一個對象就是 UIApplication 對象。
-
利用 UIApplication 對象,能進行一些應用級別的操作。
2. UIApplication的作用(常用的屬性和方法)
UIApplication 一般用來做一些應用級別的操作(app提醒框,控制聯網的狀態,打電話,打開網頁)。
1> 設置appIcon提醒數字
圖標需要手動清除,應用程式關閉,不會自動清除。
iOS頭文件中的屬性聲明:
@property(nonatomic) NSInteger applicationIconBadgeNumber __TVOS_PROHIBITED; // set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.
通過註釋我們可以得知:iOS8之後必須註冊用戶通知,註冊後才能顯示提醒數字
註冊用戶通知方法聲明:
// Registering UIUserNotificationSettings more than once results in previous settings being overwritten. - (void)registerUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;
iOS8.0推出註冊用戶通知的目的是為了提高用戶的體驗,對於有強迫症的用戶可以通過這個通知將提醒數字關閉。
實例代碼:
// 通過單例方法獲取 UIApplication 對象 UIApplication *app = [UIApplication sharedApplication]; // 設置appIcon提醒數字,iOS8之後必須註冊用戶通知 app.applicationIconBadgeNumber = 10; // 創建用戶通知 UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]; // 註冊用戶的通知 [app registerUserNotificationSettings:settings];
用戶通知如圖:
點擊 " 好 " 後就可以看到類似於QQ消息數量的提醒,如圖: