簡體   English   中英

按下主屏幕按鈕后iOS應用程序解除分配

[英]iOS app dealloc on home button press

我沒有使用ARC,對於應用程序暫停后我保留的所有對象會發生什么情況感到有些困惑。

我看了一下這個線程,但是並沒有太大幫助:

蘋果手機。 不應該點擊主頁按鈕導致UIApplicationDelegate的dealloc被調用

我已經閱讀了有關多任務處理的Apple文檔,但是找不到有關dealloc的任何信息。

我運行了儀器,沒有發現任何泄漏,但是不清楚按下“停止”按鈕時會發生什么

所以我的問題是:

1)為什么我的一些dealloc方法沒有被調用? 例如,沒有調用我的UIResponder的dealloc(當我雙擊iPad上的home按鈕並刪除我的應用程序時),而沒有一個UIViewController對象的調用。

2)當我按儀器上的“停止”按鈕(正在運行以檢查是否泄漏)時,應用程序處於哪種模式? (例如,處於非活動狀態,背景,已暫停...其他?)

由於我的思想太習慣於C ++的思考方式,即在哪里退出應用程序會導致調用析構函數,因此,我很難形象化iOS等效項。

iOS部署目標:8.0

  1. 您的應用程序只是發送到后台。 它仍在內存中。 如果用戶備份了您的應用,那么它就在您退出的地方。 如果無緣無故地無故釋放任何東西,那將是不好的。 當用戶雙擊“主頁”按鈕並刪除該應用程序時,該應用程序將被殺死。 參見#2。
  2. 當您按Xcode中的“停止”按鈕(或用戶通過雙擊“主頁”按鈕終止應用程序)時,您的應用程序將被殺死。 應用程序流程已消失。 釋放所有內存和其他資源。 這是大錘。 您的應用已終止,沒有任何通知。 想象從命令行執行kill -9

這與使用ARC是否無關。 它與使用Objective-C或C ++或Swift無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM