Использование в режиме Swift для проверки состояния приводит к перегреву телефона iOSIOS

Программируем под IOS
Ответить
Anonymous
 Использование в режиме Swift для проверки состояния приводит к перегреву телефона iOS

Сообщение Anonymous »


Я пытаюсь реализовать простую игру в iOS, используя Swift. игра пошаговая; ходит первый игрок, затем второй игрок, затем первый... Для этого я использую протокол:

class PersonAgent: AgentProtocol { пусть тип агента: Тип агента = .person пусть цвет: UIColor вар точек: Int = 0 частная var TappedLine: Линия? инициализация (цвет: UIColor) { self.color = цвет } func action() async -> Line { в то время как self.tappedLine == ноль {} Guard let TappedLine = self.tappedLine еще { FatalError() } self.tappedLine = ноль вернуть TappedLine } func Tapped (строка: Линия) { self.tapedLine = линия } } Когда пользователь нажимает кнопку, контроллер просмотра вызывает нажатую функцию, и после этого метод действия может что-то вернуть. проблема в том, что телефон перегревается из-за такой простой игры. Могу ли я достичь той же функциональности, не используя while? есть какие-нибудь предложения по повышению эффективности процессора и памяти?

чтобы сделать ситуацию более понятной, в моем контроллере представления есть следующий код:
расширение BoardViewController { частная забавная игра() { печать (# функция) Задача { печать("внутренняя задача") в то время как self.shouldResumeGame() { print("Поворот итерации") вар долженChangeTurn = true пусть текущийАгент: AgentProtocol переключатель self.turn { случай .первый: текущийАгент = self.firstAgent случай .секунда: текущийАгент = сам.ВторойАгент } пусть actionResult = ждет currentAgent.action() // здесь какая-то логика } пусть сообщение: строка if self.firstAgent.points > self. SecondAgent.points { message = «Выиграл первый игрок» } else if self.firstAgent.points < self. SecondAgent.points { message = «Выиграл второй игрок» } еще { сообщение = "Нарисовать" } // МАРК: Игра закончена let alert = UIAlertController(title: «Игра завершена», сообщение: сообщение, предпочтительный стиль: .alert) alert.addAction(UIAlertAction(title: "ОК", стиль: .default, обработчик: { [weak self] _ in self?.navigationController?.popViewController(анимированный: true) })) self.present(предупреждение, анимированное: true) } } частная функция mustResumeGame() -> Bool { вернуть self.firstAgent.points + self. SecondAgent.points != 60 } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»