首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有当iOS版本为8或更高时才初始化全局变量?

只有当iOS版本为8或更高时才初始化全局变量?
EN

Stack Overflow用户
提问于 2014-10-06 14:41:09
回答 1查看 648关注 0票数 2

我想在我的新游戏中使用SKLightNode。您可能知道,iOS 7.1不支持SKLightNode。我仍然想把它用在8.0或更高的地方。使用7.1或更少的用户将不得不在没有照明效果的情况下播放。

为了使更改LightNode在我的更新方法中的位置成为可能,并且在与某些对象碰撞时,我希望使变量成为全局变量。

代码语言:javascript
复制
var light:SKLightNode!

我知道如何获得iOS版本,但使用上面的代码行已经使我的应用程序在7.1上崩溃,然后我才能验证它是否有效。

如何仅在使用iOS 8或更高版本时初始化此变量?我正在使用Swift和SpriteKit。

谢谢你的帮助,米奇

EN

回答 1

Stack Overflow用户

发布于 2014-10-06 15:21:10

解决这个问题的唯一方法是将SKLightNode存储为Any?。如果不是nil的话

代码语言:javascript
复制
var light: Any? = {
    let iosVersion = NSString(string: UIDevice.currentDevice().systemVersion).doubleValue
    return (iosVersion >= 8 ? SKLightNode() : nil)
}()

if let light = light {
    println("yeah, we have \(light as SKLightNode)")
} else {
    println("nay, we have nothing")
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26218688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档