Mac无法启动过程中出现的各类符号及处理方法(禁止,圆圈,问号,齿轮,空白,警告,地球等)

 mac, macpro  Mac无法启动过程中出现的各类符号及处理方法(禁止,圆圈,问号,齿轮,空白,警告,地球等)已关闭评论
2月 252021
 

Mac无法启动过程中出现的各类符号及处理方法,此文摘录自apple官网。

 

如果您的 Mac 无法顺利完成启动,或者在启动过程中需要您完成某项操作,可能会卡在以下某个屏幕上。

由直线穿过的圆圈

macOS 启动屏幕上显示了禁止符号和 URL:support.apple.com/mac/startup

了解如果您的 Mac 在启动时显示一个由直线穿过的圆圈(禁止符号),该怎么做。


问号


“选项”齿轮图标


空白屏幕

Mac 笔记本电脑空白灰屏

了解如果您的 Mac 在启动时出现空白屏幕(例如空白灰色、黑色或蓝色屏幕),该怎么做。



带有警告符号的地球

macOS 启动屏幕上显示了带有警告符号的地球和 URL:support.apple.com/mac/startup

如果显示带有感叹号的地球,则说明您的 Mac 曾尝试通过互联网从 macOS 恢复功能启动,但失败了。了解如果您的 Mac 无法从 macOS 恢复功能启动,该怎么做。


锁形图标

macOS 启动屏幕上显示了固件锁形图标和密码输入栏

如果您的 Mac 使用了固件密码,则当您尝试从另一个磁盘或宗卷(例如,外置驱动器或 macOS 恢复功能)启动时会出现锁形图标。请输入固件密码以继续。


锁定系统的 PIN 码

macOS 锁定系统的 PIN 码启动屏幕

如果您的 Mac 已通过“查找”功能进行了远程锁定,则系统将要求输入 PIN 码。请输入四位数或六位数密码以继续。


登录窗口

macOS Big Sur 用户登录屏幕

在登录窗口中,输入您的用户帐户密码,以登录您的 Mac。如果“文件保险箱”已打开,则这一操作还会解锁您的磁盘。您可能会在背景中看到默认的桌面图片,在您选择自己的帐户后,这个图片可能会更改为您选择的桌面图片。


雷雳、USB 或 FireWire 符号

如果屏幕上显示黑色背景和大的雷雳 、USB  或 FireWire  符号,则表示您的 Mac 处于目标磁盘模式

Swift中的!和?, 问号 和叹号 的使用和区别介绍

 swift  Swift中的!和?, 问号 和叹号 的使用和区别介绍已关闭评论
8月 132019
 

一般我们在一下两种情况下会遇到!和?的使用
1.声明变量时

var number :Int?
var str : String

2.在对变量操作时

number?.hashValue
str!.hashValue

由于这两种情况的意义不同,所以分开进行解释:

1.声明变量时
在声明一个变量时如果不手动初始化,Swift不会自动初始化该变量为一个默认值的。

var a : String
var b = a           //error:因为没有初始化a,a没有值

但是对于Optional的变量则不同,Optional的变量在声明时如果不初始化,Swift会自动将该变量初始化为nil。声明变量时在类型后添加?或者!就是告诉编译器这个一个Optional的变量,如果没有初始化,你就将其初始化为nil

var a : String?           //a 为nil
var b : String!           //b 为nil
var a_test = a            //a_test为nil
var b_test = b            //b_test为nil

但是这两者之间还是有一些区别的,介绍后面之后再讲。
Optional事实上是一个枚举类型,从下图可以看出,Optional包含None和Some两种类型,而nil就是Optional.None,非nil就是Optional.some。如果Optional变量在声明时不初始化,Swift会调用init()来初始化变量为nil,而用非nil的值初始化变量时,会通过Some(T)把该原始值包装,所以在之后使用的时候我们需要通过解包取出原始值才能使用。

2.对变量进行操作时

var arrayCount = dataList?.count

这时问号的意思类似于isResponseToSelector,即如果变量是nil,则不能响应后面的方法,所以会直接返回nil。如果变量非nil,就会拆Some(T)的包,取出原始值执行后面的操作。

var arrayCount = dataList!.count

这里的叹号和之前的问号则不同,这里表示我确定dataList一定是非nil的,所以直接拆包取出原始值进行处理。因此此处如果不小心让dataList为nil,程序就会crash掉。

回到上面声明时?和!区别的问题上去
声明变量时的?只是单纯的告诉Swift这是Optional的,如果没有初始化就默认为nil,而通过!声明,则之后对该变量操作的时候都会隐式的在操作前添加一个!。

总结

  1. 问号?
    a.声明时添加?,告诉编译器这个是Optional的,如果声明时没有手动初始化,就自动初始化为nil
    b.在对变量值操作前添加?,判断如果变量时nil,则不响应后面的方法。
  2. 叹号!
    a.声明时添加!,告诉编译器这个是Optional的,并且之后对该变量操作的时候,都隐式的在操作前添加!
    b.在对变量操作前添加!,表示默认为非nil,直接解包进行处理

 

来自:https://segmentfault.com/a/1190000000533936。