Здравствуйте, Im, в настоящее время использующий swift в xCode, и у меня есть генератор случайных чисел, который создает случайную точку в представлении.Как сделать глобальную переменную, которая использует «self» в Swift
func randomInRange(lo: Int, hi : Int) -> Int {
return lo + Int(arc4random_uniform(UInt32(hi - lo + 1)))
}
// x coordinate between MinX (left) and MaxX (right):
let randomX = randomInRange(Int(CGRectGetMinX(self.frame) * 2), Int(CGRectGetMaxX(self.frame)))
// y coordinate between MinY (top) and MidY (bottom):
let randomY = randomInRange(Int(CGRectGetMinY(self.frame) * 2), Int(CGRectGetMaxY(self.frame)))
let randomPoint = CGPoint(x: randomX , y: randomY)
Я хотел бы глобальное использование этого переменный, так что я могу использовать эту случайную точку несколько раз, а затем выписать этот весь блок кода каждый раз. Теперь я знаю, что вы можете создать глобальную переменную, объявив его выше классом GameScene или в промежутке между классом и viewDidLoad как такой
class GameScene: SKScene , SKPhysicsContactDelegate {
func randomInRange(lo: Int, hi : Int) -> Int {
return lo + Int(arc4random_uniform(UInt32(hi - lo + 1)))
}
// x coordinate between MinX (left) and MaxX (right):
let randomX = randomInRange(Int(CGRectGetMinX(self.frame) * 2), Int(CGRectGetMaxX(self.frame)))
// y coordinate between MinY (top) and MidY (bottom):
let randomY = randomInRange(Int(CGRectGetMinY(self.frame) * 2), Int(CGRectGetMaxY(self.frame)))
let randomPoint = CGPoint(x: randomX , y: randomY)
override func didMoveToView(view: SKView) {
/* Setup your scene here */
Однако, когда я ставлю его выше того же класса сцены я получаю сообщение об ошибке. .. «Использование неразрешенного идентификатора self» И когда я установил его между классом gameScene и viewDidLoad, я получаю ошибку ... gameScene не имеет члена с именем self. Если возможно, есть способ заменить себя чем-то другим в отношении представления, если да, ответьте. Спасибо!
Используйте одноэлементный класс, чтобы поделиться им. –
Вы хотите использовать это однократно вычислимое свойство как глобальное const или иметь возможность многократно его вычислять в разных контроллерах/представлениях? – Kubba
Я не совсем уверен, как использовать или создавать классы singleton, Как я могу реализовать свою случайную точку в одном? также где находится класс? спасибо Thomas –