Мое приложение использует firebase observSingleEventOfType довольно честно, и я понял, что память моего приложения увеличивается со временем. Я прокомментировал весь мой код, кроме кнопки тестирования, которая вызывает следующую функцию.
func loadPostsTest() {
FIRDatabase.database().reference().child("posts").observeSingleEventOfType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
print(snapshot.value)
})
}
Когда программа запускается, я быстро нажимаю тестовую кнопку примерно 2,3 раза в секунду и наблюдаю график памяти, как показано ниже. Память поднимается и не возвращается после запроса. Из-за этого проблема в моем приложении довольно справедлива, так как из-за этого память моего приложения будет расти с 70 мб до 150 + мб. Любая причина для этого?
Обратите внимание, что в течение короткой пятисекундной остановки я остановился, чтобы убедиться, что все "снимки" распечатаны.
Примечание 2... Когда я перестаю нажимать кнопку, память остается на том же уровне, что и в разделе "короткий отдых". Просто вы можете думать, что он растет само по себе бесконечно
------- UPDATE ----------
Чтобы еще раз подтвердить эту проблему, я создал совершенно новый проект, в котором ничего нет, кроме импорта firebase, кнопки в панели рассказов со следующим кодом и симуляции на моих 6-х (симуляция на симуляторе, похоже, не имеет этой проблемы). Образ ниже доказывает, что здесь есть что-то рыбное, где моя память переместилась с 11.1mb до 17.3mb с 303 запросами в течение минуты или около того.
import UIKit
import Firebase
class ViewController: UIViewController {
var count: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func testBtnPressed(sender: AnyObject) {
FIRDatabase.database().reference().child("posts").observeSingleEventOfType(.Value, withBlock: {[weak self] (snapshot: FIRDataSnapshot) in
print(self?.count)
self?.count += 1
})
}