Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在新的XCode 6中运行后,项目有144次致命故障_Ios_Swift_Sprite Kit_Xcode6 - Fatal编程技术网

Ios 在新的XCode 6中运行后,项目有144次致命故障

Ios 在新的XCode 6中运行后,项目有144次致命故障,ios,swift,sprite-kit,xcode6,Ios,Swift,Sprite Kit,Xcode6,我使用XCode6 beta4通过obj-c和Swift开发我的项目。每次安装GM版本后 self.view.addSubview(startButton) 高亮显示,并且这些线也高亮显示 scene.view.paused self.scene.removeAllActions() self.view.bounds SpriteKit的课程是否改变了,是我的错还是通用汽车的错误 错误是SKView/SKScene没有成员****,但我检查了它,它有这些成员 这真的不是你的错。Swift团队

我使用XCode6 beta4通过obj-c和Swift开发我的项目。每次安装GM版本后

self.view.addSubview(startButton)
高亮显示,并且这些线也高亮显示

scene.view.paused
self.scene.removeAllActions()
self.view.bounds
SpriteKit的课程是否改变了,是我的错还是通用汽车的错误

错误是SKView/SKScene没有成员****,但我检查了它,它有这些成员


这真的不是你的错。Swift团队检查并清理了框架中选项的使用。在某些情况下,隐式展开的选项(用
声明)成为常规选项(用
声明)

视图现在是用
声明的可选视图,而不是用
声明的隐式展开的可选视图。您现在需要在使用该值时展开该值:

self.view?.bounds.size

真的不是你的错。Swift团队检查并清理了框架中选项的使用。在某些情况下,隐式展开的选项(用
声明)成为常规选项(用
声明)

视图现在是用
声明的可选视图,而不是用
声明的隐式展开的可选视图。您现在需要在使用该值时展开该值:

self.view?.bounds.size

我知道我已经看到了几个有效的副本,但我现在还没有找到,所以这里有一个快速的答案

这与如何将API中的对象参数、返回值和属性从ObjC导入Swift有关。在Xcode 6测试版早期,所有对象参数/返回/属性都作为隐式展开选项导入;e、 g

// in SKScene:
var view: UIView!
// in SKNode:
var children: [AnyObject]!
使用隐式展开可选(IUO),您可以直接寻址
view
(因此像
self.view.bounds
这样的代码是合法的)。它可能不存在,在这种情况下你会崩溃。某些操作在IUO类型上不可能,而在它包含的类型上则可能。IUO的最佳实践是在处理其内容之前,使用诸如可选链接和可选绑定之类的构造检查它们是否为nil

ObjC to Swift导入器必须对指向ObjC对象的所有属性/参数/返回执行此操作,因为从语法上讲,任何指针都允许为
nil
,即使在实践中永远不会是。测试
nil
对于像
SKNode.children
这样的API来说有点麻烦,因为它们从来都不是
nil
(在没有children的情况下是一个空数组)

在过去的几个Beta和Xcode 6 GM中,苹果审核了几个框架,以便导入的对象指针可以是
nil
(如
UIViewController.view
)作为显式选项导入:

// SKScene
var view: UIView?
以及永远不会为
nil
的对象指针作为非可选类型导入:

// SKNode
var children: [AnyObject]
这意味着您可以安全地引用
node.children
,而无需担心崩溃,也无需检查它是否为
nil
。但是既然
scene.view
是显式可选的,您必须在使用它之前检查它是否为nil

根据场景的不同,您可以选择几种方法中的任意一种来测试或处理可选的:

  • 强制展开:
    self.view!。边界大小
  • 可选链接:
    self.view?.bounds.size
  • 可选绑定:
    如果让view=self.view{/*使用*/view.bounds.size}
  • 链接和绑定:
    如果让size=self.view?.bounds.size{/*使用*/size}

阅读Swift编程语言,了解每种语言的优缺点。

我知道我已经看到了一些有效的副本,但我目前还没有找到,所以这里有一个快速的答案

这与如何将API中的对象参数、返回值和属性从ObjC导入Swift有关。在Xcode 6测试版早期,所有对象参数/返回/属性都作为隐式展开选项导入;e、 g

// in SKScene:
var view: UIView!
// in SKNode:
var children: [AnyObject]!
使用隐式展开可选(IUO),您可以直接寻址
view
(因此像
self.view.bounds
这样的代码是合法的)。它可能不存在,在这种情况下你会崩溃。某些操作在IUO类型上不可能,而在它包含的类型上则可能。IUO的最佳实践是在处理其内容之前,使用诸如可选链接和可选绑定之类的构造检查它们是否为nil

ObjC to Swift导入器必须对指向ObjC对象的所有属性/参数/返回执行此操作,因为从语法上讲,任何指针都允许为
nil
,即使在实践中永远不会是。测试
nil
对于像
SKNode.children
这样的API来说有点麻烦,因为它们从来都不是
nil
(在没有children的情况下是一个空数组)

在过去的几个Beta和Xcode 6 GM中,苹果审核了几个框架,以便导入的对象指针可以是
nil
(如
UIViewController.view
)作为显式选项导入:

// SKScene
var view: UIView?
以及永远不会为
nil
的对象指针作为非可选类型导入:

// SKNode
var children: [AnyObject]
这意味着您可以安全地引用
node.children
,而无需担心崩溃,也无需检查它是否为
nil
。但是既然
scene.view
是显式可选的,您必须在使用它之前检查它是否为nil

根据场景的不同,您可以选择几种方法中的任意一种来测试或处理可选的:

  • 强制展开:
    self.view!。边界大小
  • 可选链接:
    self.view?.bounds.size
  • 可选绑定:
    如果让view=self.view{/*使用*/view.bounds.size}
  • 链接和绑定:
    如果让size=self.view?.bounds.size{/*使用*/size}
在T中阅读