簡體   English   中英

iPhone:我的泄漏應用程序可以損害其他應用程序嗎?

[英]iPhone: Can my Leaking App harm other apps?

所以,我寫完了我的第一個iPhone應用程序,並且已經將它發送給一組beta測試人員。 每個人都很高興,除了這個人注意到在運行我的應用程序后,另一個應用程序不再啟動了。

不太了解內存管理,我開始查看Instruments中的Leaks圖表,並注意到我的應用程序中發生了一些泄漏。

三個問題:

  1. 泄漏總是不好嗎? 最大泄漏是15k,共計5,1 MB分配的內存。
  2. Apple會因泄漏而拒絕我的應用嗎?
  3. 我的應用程序退出后,是不是所有的內存都會自動釋放? 可能是我泄漏的應用程序對其他應用程序有害嗎?

謝謝Sjakelien

每個應用程序都應該在自己的“沙盒”中運行,並且設計不應該影響手機上安裝的任何其他應用程序。 如果您的評論員發現您的應用確實影響了另一個應用的情況,那絕對不是您的錯,盡管我很想知道這是如何完成的;)。

不過,我的猜測是,您的評論者的其他應用程序完全獨立於您的應用程序而破壞,並且他/她虛假地將錯誤歸因於您的應用程序。 請他嘗試重現問題(卸載這兩個應用程序,安裝其他應用程序,安裝您的應用程序)。

另外兩個答案說我同意,但沒有人直接回答第一個問題(“漏洞總是壞”)。 我會說是的,他們是。 確實,您的程序可能會長時間與它們一起運行而不會出現問題。 操作系統應該在終止后清理內存(除非操作系統中存在錯誤,如前所述)。 但最終泄漏將成為某人在某些時候運行足夠長時間的問題。 此外,即使它不成為一個問題,它可能是一個總是修復你知道的內存泄漏的最佳做法。

任何超出應用程序退出的泄漏都是操作系統錯誤,因此也是Apple的問題。

在此基礎上拒絕您的應用是不公平的。
我不知道這對你有什么安慰。

為了記錄,我的應用程序引發了mediaserverd的泄漏。
3.0GM的泄漏量略小一些。

API的另一個不正確用法崩潰了 mediaserverd。
3.0GM。 討厭。 不過,我更喜歡錯誤代碼
從理論上講,這可以用來解決泄漏問題。

這取決於你正在泄漏的“記憶”。 您是否使用設備存儲空間來緩存某些內容? 從理論上講,你可能已經耗盡了足夠的空間而其他應用無法啟動,因為它需要一定的可用空間。

如果我們談論物理記憶,那么沒有。 當你的應用程序死了它就死了。 您可以要求他們重新啟動設備,看看他們是否有同樣的問題。

Apple確認批准有內存泄漏的應用程序。

也就是說,在提交給Apple之前,我們徹底檢查“我們的代碼”沒有泄漏,因為用戶不喜歡讓應用程序突然關閉它們。 我說“我們的代碼”,因為框架中存在內存泄漏而不是你正在做的事情。 因此Apple批准內存泄漏的應用程序。

此外,我懷疑您的應用程序對用戶的其他應用程序產生了不利影響。 我沒見過那種行為。

暫無
暫無

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

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