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
与一个字母变量一起使用,以使其尽可能短。此外,如果 categoryBitMask
是 PhysicsCategory
类型,您可以只使用 .Monster
,等等
if let b = monster.physicsBody {
b.dynamic = true
b.categoryBitMask = .Monster
b.contactTestBitMask = .Projectile
b.collisionBitMask = .None
}
给对象设置参数时,我经常需要多次访问同一个对象,如:
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
与一个字母变量一起使用,以使其尽可能短。此外,如果 categoryBitMask
是 PhysicsCategory
类型,您可以只使用 .Monster
,等等
if let b = monster.physicsBody {
b.dynamic = true
b.categoryBitMask = .Monster
b.contactTestBitMask = .Projectile
b.collisionBitMask = .None
}