我的第一个问题:)最近我将我的Xcode更新为8,并且该resizableSnapshotView方法在某些模拟器上无法正常工作.snapshotView适用于所有iOS9/10测试设备和iPhone6s下的模拟器,但在iPhone7/7p模拟器上它是空的.我认为7/7p可能需要一些权限来访问快照,但我不知道它们是什么.
let cell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! CalendarCell
var topFrame = cell.frame
topFrame.origin.y = tableView.contentOffset.y
topFrame.size.height -= tableView.contentOffset.y
topSnapshotView = tableView.resizableSnapshotView(from: topFrame, afterScreenUpdates: false, withCapInsets: UIEdgeInsets.zero)
Run Code Online (Sandbox Code Playgroud) 在以前的版本中,为了从[String: Any]字典中获取浮点值,我可以使用let float = dict["somekey"] as? Float,但在swift4.1中,它不起作用.看来类型dict["somekey"]已经隐含推断为Double之前,我得到它,所以从铸造Double到Float总是失败.我想知道这是一个新特征还是一个bug.
- 这是更新.
我重新下载了一个Xcode9.2并做了一些实验,现在我想我弄清楚发生了什么.这是测试代码:
let dict: [String : Any] = ["key": 0.1]
if let float: Float = dict["key"] as? Float {
print(float)
} else {
print("nil")
}
let dict1: [String : Any] = ["key": NSNumber(value: 0.2)]
if let float: Float = dict1["key"] as? Float {
print(float)
} else {
print("nil")
}
let number = NSNumber(value: 0.3)
if let float: Float = number …Run Code Online (Sandbox Code Playgroud)