第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

NSAutoreleasePool自動(dòng)釋放池如何工作?

NSAutoreleasePool自動(dòng)釋放池如何工作?

喵喵時(shí)光機(jī) 2019-12-17 15:10:50
據(jù)我了解,使用alloc,new或copy創(chuàng)建的任何內(nèi)容都需要手動(dòng)釋放。例如:int main(void) {    NSString *string;    string = [[NSString alloc] init];    /* use the string */    [string release];}我的問題是,這樣難道不是同樣有效嗎?:int main(void) {    NSAutoreleasePool *pool;    pool = [[NSAutoreleasePool alloc] init];    NSString *string;    string = [[[NSString alloc] init] autorelease];    /* use the string */    [pool drain];}
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

是的,您的第二個(gè)代碼段是完全有效的。

每次將-autorelease發(fā)送給對(duì)象時(shí),都會(huì)將其添加到最內(nèi)部的autorelease池中。當(dāng)池耗盡時(shí),它僅向池中的所有對(duì)象發(fā)送-release。

自動(dòng)釋放池只是一種便利,它使您可以將發(fā)送-發(fā)送推遲到“以后”。“稍后”可能會(huì)在多個(gè)地方發(fā)生,但是在Cocoa GUI應(yīng)用程序中最常見的是當(dāng)前運(yùn)行循環(huán)周期的結(jié)尾。


查看完整回答
反對(duì) 回復(fù) 2019-12-17
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

NSAutoreleasePool:消耗與釋放

由于功能drain和release似乎是造成混亂,它可能是值得澄清這里(雖然這是覆蓋在文檔 ...)。


嚴(yán)格地說,從大局的角度drain是不等同于release:


在引用計(jì)數(shù)的環(huán)境中,drain確實(shí)執(zhí)行與相同的操作release,因此兩者在此意義上是等效的。要強(qiáng)調(diào)的是,這意味著您使用而不是不會(huì)泄漏池。drainrelease


在垃圾收集的環(huán)境中,release禁止操作。因此,它沒有任何作用。 drain另一方面,向收集器暗示它應(yīng)該“根據(jù)需要收集”。因此,在垃圾收集環(huán)境中,使用drain有助于系統(tǒng)平衡收集掃描。


查看完整回答
反對(duì) 回復(fù) 2019-12-17
  • 3 回答
  • 0 關(guān)注
  • 611 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)