当给对象设置参数时,我经常需要多次访问同一个对象,比如:
monster.physicsBody?.dynamic = true
monster.physicsBody?.categoryBitMask = PhysicsCategory.Monster
monster.physicsBody?.contactTestBitMask = PhysicsCategory.Projectile
monster.physicsBody?.collisionBitMask = PhysicsCategory.None
SWIFT 中是否有任何捷径可以使其更短但性能相同甚至更好?在 VB 中有类似的东西
With monster.physicsBody
.dynamic = ...
End With
当分配给新变量时,我得到一个副本,所以我不能改变原来的值。有什么想法吗?
最佳答案
Swift 中没有类似With
的东西。您可以将 if let
与一个字母变量一起使用,以使其尽可能短。此外,如果 categoryBitMask
是 PhysicsCategory
类型,您可以只使用 .Monster
等。
if let b = monster.physicsBody {
b.dynamic = true
b.categoryBitMask = .Monster
b.contactTestBitMask = .Projectile
b.collisionBitMask = .None
}
关于performance - SWIFT:访问对象的捷径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659546/