OSX 上的 Swift 与 iOS 版本不同吗?
Is Swift on OSX different from the iOS version?
我想获取 CALayer 的边界。
在 OSX 我必须这样做
let bounds = rootLayer?.bounds
在 iOS,这个
let bounds = rootLayer.bounds
然后将此边界分配给另一层我必须这样做
于 OSX
anotherLayer.bounds = bounds!
于 iOS
anotherLayer.bounds = bounds
为什么? swift 在 iOS 和 OSX 上有什么不同吗?那太糟糕了。
在这两种情况下,rootLayer 都是这样设置的
let rootLayer = vista.layer
Swift 语言 相同。 UI 框架和 API 不一样,这是预料之中的,因为 UI 范式不一样。
我不知道 API 你是从什么 vista
填充的。但是沿线的某个地方,您有一个 API,它在 OSX 和 iOS 上的定义略有不同。在 OSX vista.layer
returns 上是可选的,在 iOS returns 上是非可选的。当你找到它的位置时,你可以纠正它,并在那里打开可选的。
最后,隐式键入在这里对您没有好处。如果您将 rootLayer
声明更改为:
let rootLayer:MyLayerTypeHere = vista.layer
如果类型作为可选类型返回,那么您将在此处收到编译时错误,因为 MyLayerTypeHere
和 MyLayerTypeHere?
是不同的类型。
我想获取 CALayer 的边界。
在 OSX 我必须这样做
let bounds = rootLayer?.bounds
在 iOS,这个
let bounds = rootLayer.bounds
然后将此边界分配给另一层我必须这样做
于 OSX
anotherLayer.bounds = bounds!
于 iOS
anotherLayer.bounds = bounds
为什么? swift 在 iOS 和 OSX 上有什么不同吗?那太糟糕了。
在这两种情况下,rootLayer 都是这样设置的
let rootLayer = vista.layer
Swift 语言 相同。 UI 框架和 API 不一样,这是预料之中的,因为 UI 范式不一样。
我不知道 API 你是从什么 vista
填充的。但是沿线的某个地方,您有一个 API,它在 OSX 和 iOS 上的定义略有不同。在 OSX vista.layer
returns 上是可选的,在 iOS returns 上是非可选的。当你找到它的位置时,你可以纠正它,并在那里打开可选的。
最后,隐式键入在这里对您没有好处。如果您将 rootLayer
声明更改为:
let rootLayer:MyLayerTypeHere = vista.layer
如果类型作为可选类型返回,那么您将在此处收到编译时错误,因为 MyLayerTypeHere
和 MyLayerTypeHere?
是不同的类型。