Ios 函数名后的可选链接问号
我读过苹果公司的Swift编程语言(swift2)一章。在本章中,没有提到在函数名之后但在左括号之前的可选问号 但我从苹果的文件(授权部分)中看到了以下swift代码:Ios 函数名后的可选链接问号,ios,swift,swift2,Ios,Swift,Swift2,我读过苹果公司的Swift编程语言(swift2)一章。在本章中,没有提到在函数名之后但在左括号之前的可选问号 但我从苹果的文件(授权部分)中看到了以下swift代码: 在函数名后但在左括号前加问号是什么意思 当协议方法是可选的并且可能无法在对象上实现时,使用此方法。(在这种情况下,可选的窗口:将使用NSWindowDelegate协议中的fullScreenContentSize:方法)在两种情况下使用此方法: 协议方法本身标记为可选,因此我们不知道协议的采用者是否实现了此方法 我们正在向A
在函数名后但在左括号前加问号是什么意思 当协议方法是可选的并且可能无法在对象上实现时,使用此方法。(在这种情况下,可选的
窗口:将使用NSWindowDelegate
协议中的fullScreenContentSize:
方法)在两种情况下使用此方法:
- 协议方法本身标记为
,因此我们不知道协议的采用者是否实现了此方法可选
- 我们正在向AnyObject发送消息。我们可以向AnyObject发送任何已知的类消息—它会丢弃类型检查—但是,同样,我们不知道实际对象是否实现了此方法
nil
)
在幕后,正在调用Objective-C响应选择器:
。因此,只有当接收者接触Objective-C时,这种模式才可用。基本上,这是一种Objective-C语言功能,用Swift速记表达。参见我的书:和
//There is a question mark right after 'window'
if let fullScreenSize = myDelegate?.window?(myWindow, willUseFullScreenContentSize: mySize) {
print(NSStringFromSize(fullScreenSize))
}