Так что моя функция deinit никогда не вызывается, я уже ищу ответ, но никто из них не работает для меня. И viewcontroller продолжает сбой из-за проблемы с памятью. Спасибо за вашу помощь!Deinit никогда не вызывается, проблема с памятью
Вот мой код:
@IBOutlet weak var scnView: SCNView!
@IBOutlet weak var artInfoView: UIView!
@IBOutlet weak var mainTitleLbl: UILabel!
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var timeLbl: UILabel!
@IBOutlet weak var stackView: UIStackView!
@IBOutlet weak var artistImg: RoundImage!
@IBOutlet weak var artistNameLbl: UILabel!
@IBOutlet weak var artistView: UIView!
var artRoomScene = ArtRoomScene(create: true)
var artImage = UIImage()
var artInfo: [Any] = []
var posts = [Art]()
var post: Art!
var user: Users!
var showInfo: Bool = false
var showSimilar: Bool = false
let alert = Alerts()
override func viewDidLoad() {
super.viewDidLoad()
scnView = self.scnView!
let scene = artRoomScene
scnView.scene = scene
scnView.autoenablesDefaultLighting = true
scnView.isJitteringEnabled = true
scnView.backgroundColor = UIColor.white
if let info = self.artInfo[1] as? Art {
let image = self.artInfo[0] as? UIImage
let height = (image?.size.height)!/900
let width = (image?.size.width)!/900
self.artRoomScene.setup(artInfo: image, height: height, width: width)
self.mainTitleLbl.text = info.title
let date = info.postDate/1000
let foo: TimeInterval = TimeInterval(date)
let theDate = NSDate(timeIntervalSince1970: foo)
let time = timeAgoSinceDate(date: theDate as Date, numericDates: true)
self.timeLbl.text = "\(time)"
self.textView.text = "\(info.artHeight)'H x \(info.artWidth)'W - \(info.price)$/month - \(info.type) \n \(info.description)."
DataService.instance.REF_USERS.child("\(info.userUid)").observe(.value, with: { (snapshot) in
if let postDict = snapshot.value as? Dictionary<String, AnyObject> {
let key = snapshot.key
self.user = Users(key: key, artistData: postDict)
if let user = self.user {
self.artistNameLbl.text = user.name
self.artistImg.sd_setImage(with: URL(string: "\(user.profilePicUrl!)") , placeholderImage: UIImage(named:"Placeholder") , options: .continueInBackground)
}
}
})
}
}
deinit {
print("viewcontroller is being deallocated")
}
Что вы пробовали до сих пор, чтобы найти и исправить эту проблему? Каков был результат? Также нет функции 'deinit' в размещенном коде, поэтому, предположительно, вы только разместили часть класса - как вы знаете, проблема в' viewDidLoad() '? –
Потому что, когда я вызываю scnView.removeFromSuperview() в viewDidDisappear, проблема с памятью останавливается. Мой код слишком велик, чтобы опубликовать его все. Я просто обновляю свой вопрос – John