Сохранение случайных чисел, сгенерированных во время выполнения приложения, до выхода из приложения в Swift - PullRequest
1 голос
/ 07 октября 2019

Я написал код функции для генерации случайных чисел.

func randomNumGenerate() -> Int {
        let formatter = DateFormatter()
        formatter.dateFormat = "HHmmss"

        let currentTimeStr = formatter.string(from: Date())

        return Int(currentTimeStr) ?? 0
    }

Затем используйте это число для запуска другой функции класса.

    override func viewDidLoad() {
        super.viewDidLoad()

        BookAPI.requestGenre(bookGenre: 13, bookAddPoint: bookAddPoint, randomSeed: randomNumGenerate(), completionHandler: handleBooksGenre(books:error:))

    }

Когда функция класса выполняется, данныеиз bookGenre: 13 случайным образом сортируется из-за сгенерированного числа randomNumGenerate().

Но проблема в том, что когда я перехожу к другому viewController и затем снова возвращаюсь к viewController с вышеуказанной функцией, числа генерируются случайным образоми выравнивание изменяется.

Как сохранить случайные числа, сгенерированные при запуске приложения, до его закрытия?

1 Ответ

1 голос
/ 07 октября 2019

Один из способов сделать это - сгенерировать случайное число при запуске приложения в applicationDidFinishLaunching:

// AppDelegate.swift
var randomNumber: Int!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    randomNumber = randomNumGenerate()
    return true
}

. Это гарантирует, что при запуске будет сгенерировано только одно случайное число.

И затем в вашем VC, получите это случайное число:

let randomNumber = (UIApplication.shared.delegate as! AppDelegate).randomNumber
BookAPI.requestGenre(
    bookGenre: 13, 
    bookAddPoint: bookAddPoint, 
    randomSeed: randomNumber, 
    completionHandler: handleBooksGenre(books:error:))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...