在为对象设置参数时,我经常需要多次访问同一个对象,如:
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
当分配给新变量时,我得到一份副本,所以我无法更改原始值。有什么想法吗?
答案 0 :(得分:1)
Swift中没有像With
这样的东西。您可以将if let
与一个字母变量一起使用,以使其尽可能短。此外,如果categoryBitMask
的类型为PhysicsCategory
,则您只能使用.Monster
等。
if let b = monster.physicsBody {
b.dynamic = true
b.categoryBitMask = .Monster
b.contactTestBitMask = .Projectile
b.collisionBitMask = .None
}
答案 1 :(得分:-1)
这样做
ScaleAnimation animation = new ScaleAnimation(1.0f, 1.1f, 1.1f, 1.0f, Animation.RELATIVE_TO_PARENT, (float) (button1.getX()+ 45*ssu) / width, Animation.RELATIVE_TO_PARENT, (float) (button1.getY()+ 45*ssu) / (4 * height) );
animation.setDuration(1000);
animation.setRepeatMode(ValueAnimator.REVERSE);
animation.setRepeatCount(animation.INFINITE);
button1.startAnimation(animation);
访问同一个对象。