SWIFT: 访问对象的捷径?

SWIFT: Short cut for accessing objects?

给对象设置参数时,我经常需要多次访问同一个对象,如:

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

当赋值给新变量时,我得到了一个副本,所以我不能改变原来的值。有什么想法吗?

这样做

var physPath = monster.physicsBody

physPath.dynamic = true 
physPath.categoryBitMask = PhysicsCategory.Monster
physPath.contactTestBitMask = PhysicsCategory.Projectile
physPath.collisionBitMask = PhysicsCategory.None

访问同一对象。

Swift 中没有类似 With 的内容。您可以将 if let 与一个字母变量一起使用,以使其尽可能短。此外,如果 categoryBitMaskPhysicsCategory 类型,您可以只使用 .Monster,等等

if let b = monster.physicsBody {
  b.dynamic = true 
  b.categoryBitMask = .Monster
  b.contactTestBitMask = .Projectile
  b.collisionBitMask = .None
}