1.UIApplication
UIApplication是系统最先创建的对象,在程序中有且只有一个实例
UIApplication常用属性:
@property(nonatomic) NSInteger applicationIconBadgeNumber; //应用程序图标右上角的红色提醒数字
@property(nonatomic, getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible; //联网活动指示器的可见性
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden. //状态栏的可见性
功能实现:
//获得UIApplication对象
UIApplication *app = [UIApplication sharedApplication]
/** 设置应用程序图标右上角的红色提醒数字 */
-(void)iconBadgeNumber
{
[app registerForRemoteNotifications]; //注册用户通知
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; //获取用户通知中心对象
[center requestAuthorizationWithOptions:UNAuthorizationOptionBadge completionHandler:^(BOOL granted, NSError *error) { }]; //向通知中心请求使用提醒数字的授权
app.applicationIconBadgeNumber = 10; //设置提醒数字
}
/** 设置是否显示联网活动指示器 */
-(void)networkActivityIndicator
{
app.networkActivityIndicatorVisible = YES; //显示联网活动指示器
}
/** 设置状态栏 */
/**
* 注意:首先在Info.plist中添加一个名为View controller-based status bar appearance的Key,并设置值为NO
* 这个操作会关闭通过UIViewController设置状态栏的渠道,从而使UIApplication对于状态栏的操作生效
* 如果不进行这项操作,则以下代码将不起作用。
*/
-(void)statusBarSettings
{
app.statusBarStyle = UIStatusBarStyleLightContent; //设置状态栏样式为白色
app.statusBarHidden = NO; //使状态栏不显示
}
/** 打开网页 */
-(void)openURL
{
NSURL *url = [NSURL URLWithString:@“https://www.baidu.com”];
[app openURL:url options:@{} completionHandler:^(BOOL success){}];
}
2.NSException
NSException *exc = [NSException exceptionWithName:@“NSInternalInconsistencyException” reason:@“There can only be one exceptionTest instance.” userInfo:nil]; //定义一个异常提醒
[exc raise]; //启动异常提醒
3.UIViewController状态栏管理
默认情况下,应用程序的状态栏都是由UIViewController管理的:
/** 设置状态栏样式 */
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
/** 设置状态栏是否可见 */
-(BOOL)prefersStatusBarHidden
{
return NO;
}
如果需要关闭使用UIViewController对状态栏的管理,则要在Info.plist中配置View controller-based status bar appearance(没有则添加)的值为NO,此时状态栏的管理将由UIApplication实现