我在线阅读了很多文章并预订了(Apple),但我无法找出它们之间的区别?而且! Swift语言的运算符。
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
{
}
override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
return 1;
}
在上面的代码中,第一个func声明tableView为!并在第二个函数tableView中声明为?。
答案 0 :(得分:45)
根据官方Apple文档:
使用可选值时,您可以写吗?在行动之前 喜欢方法,属性和下标。如果之前的值? 是零,一切都在?被忽略和整体的价值 表达式为零。否则,将打开可选值,并且 之后的一切?作用于未包装的价值。在这两种情况下, 整个表达式的值是一个可选值。
一旦确定可选项确实包含值,就可以 通过向。添加感叹号(!)来访问其基础值 可选名称的结尾。感叹号有效地说:“我 知道这个选项肯定有价值;请用它。“这个 被称为强制展开可选的值(...)
Apple Inc.' Swift Programming Language'。 iBooks的。 https://itun.es/nl/jEUH0.l