為什麼我覺得 Objective C 的記憶體管理比 C 要複雜得多?這類語言是否是趨勢?

時間 2021-05-31 09:31:04

1樓:RareXray 窩牛

我覺得OC的記憶體挺簡單的,出錯概率也不大。

外部傳來的,一直要用的就retain。用一次的就不操作。

對外傳值必須使用autorelase。

自己建立物件使用,假如摸不透,可以先考慮全部使用autorelease。然後對於確定不能直接釋放的,就推遲到合適的時機release,一般是再次建立時或者dealloc。

當然現在有了ARC,宣告的時候就可以確定這些。

最後的最後,要避免引用迴圈,這個有點遠,就不說了。

2樓:阿毛

其實從原理上來說,RC這種應該是更簡單也更明了,完全遵守了誰建立(擁有)誰釋放的原則。

反觀C++則做不到:經常有物件需要在其作用域後仍舊存在,比如執行緒池封裝的task物件等等。

如果說趨勢的話未必,GC才是趨勢,RC或者ARC這種半自動的形式只能說是一種過渡。 (前面也有童鞋認為RC或者ARC是GC的一種...如果這麼說的話的確是趨勢)

基本可以把C++的方式 RC/ARC 和 GC三種模擬為汽車的手動檔,手自一體和自動檔。

不考慮耗油方面的因素的話,自動檔必然是趨勢。

3樓:Proteas

應該是趨勢了,語言和框架的目標是提供某種機制減少開發者犯錯的機會,而不是依賴於開發者的素質。不過,我還是比較喜歡彙編、C、C++。

4樓:

恩,除非硬體底層,一般都不需要使用者自身操縱記憶體資料,因為會很容易就發生溢位等異常。以後的程式設計趨勢就是越來越容易越來越簡單。。。

5樓:馮東

C++ 其實是放棄了記憶體管理作為語言特性,而把責任推給了庫。這麼做有幾個負面的歷史遺產:

讓整整一代程式設計師認為 OOP 這種東西是不需要 GC 的(注意我認為 reference-counting 也是一種 GC)。

讓 value-copy 成為一種程式設計風格。

讓採用不同記憶體管理模式的人在乙個專案裡互相製造麻煩。乙個 10 人的團隊,只要乙個人某天頭腦發熱用了乙個 raw pointer ,整個團隊所有的 shared_ptr 的用法就會整個失敗。

具體可看: http://

techsingular.net/?

p=229

我覺得我沒錯,但是父母就覺得是我的錯,為什麼啊?

best 我覺得我跟你一樣。去年畢業,不說大學成績多好,但每年都拿獎學金,學生會和黨支部都任職過,對大學學習效果自我感覺良好,唯一遺憾就是沒考上研。我去年春招籤了防水龍頭公司,我爸媽在那三個月天天給我各種發事業招聘考試,我兩個月參加了選調,省考,市值,義務教師四個考試,我真的是服氣,什麼都要你去報名...

為什麼我會覺得我配不上我喜歡的人?

千雪優娜 為什麼覺得自己配不上喜歡的人嗎?也許是因為,對方真的很優秀啊。這個我真的很理解。因為我的小哥哥就是個超級優秀的人啊。成績也很好,遊戲也很會玩。可是反觀我呢?在重要的考試裡落榜,也沒能和他繼續在一所學校裡讀書。真是一種什麼感覺呢?就是覺得喜歡的人會在更好的地方遇到很多很多優秀的小姐姐,然後那...

為什麼我覺得我不招同性喜歡?

蔡abcd 你以為你正常的正常其實是不正常,不過不用在意啊,異性喜歡不就好了,我巴不得乙個男生不喜歡我,喜歡我的都是女的呢,可惜。 蘇彤巖 一,喜歡你的異性太多了,你被人妒忌 二,同性不喜歡你,異性也不喜歡你,你就是不招人喜歡 三,你從沒有喜歡過同性,同性為啥喜歡你 月下瓜田乙隻猹 招同性喜歡?不應...