我在SceneKit应用程序中发现了一个主要的性能瓶颈,原因是该嵌套循环运行了数千次。在该循环中,除了这一行以外,有一堆代码非常愉快地缩放:
var scenePos = presentation.position
Run Code Online (Sandbox Code Playgroud)
这比只要求位置要慢100倍,再加上我在同一循环中所做的数十种其他计算,比较,数组查找和方法调用的组合。令我惊讶的是,似乎没有人对此发表评论。
为什么会这样,除了为每个节点的演示文稿制作副本之外,还有其他解决方法。为每个帧定位自己,这样您就不必一直向演示节点询问它了吗?谢谢。
编辑:presentation.position仅被读取,从未被写入。永远不会编辑boundingBox。我为几个SCNNode使用了动态SCNPhysicsBody,但绝大多数是静态的。
UILabel有一个text属性,它是一个可选的String,但它看起来像是一个隐式解包的可选项.为什么我不能为它分配另一个可选字符串?谢谢.
@IBOutlet weak var tweetContent: UILabel!
Run Code Online (Sandbox Code Playgroud)
...
var unopt: String = "foo"
var opt: String? = "bar"
var opt2: String?
opt2 = opt //Works fine
cell.tweetContent.text? = unopt //Works fine
cell.tweetContent.text? = opt //Compile error: Value of optional type 'String?' not unwrapped
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以对数组中的一系列对象进行快速枚举?就像是...
for (Object *object in myArray startingAtIndex:50) {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
......为了避免做这样的事......
for (Object *object in myArray) {
NSUInteger index = [myArray indexOfObject:object];
if (index >= 50) {
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
ios ×3
iphone ×2
objective-c ×2
xcode ×2
collections ×1
nsarray ×1
optional ×1
performance ×1
pragma ×1
scenekit ×1
scnnode ×1
swift ×1
uilabel ×1
xcode4 ×1