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

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

是否有必要在Swift程序中使用autoreleasepool?

是否有必要在Swift程序中使用autoreleasepool?

富國(guó)滬深 2019-08-08 10:50:17
是否有必要在Swift程序中使用autoreleasepool?它說(shuō),在WWDC14演示文稿的第17頁(yè)上使用Objective-C?還是要管理自動(dòng)釋放池autoreleasepool {/ * code * /}那是什么意思?這是否意味著如果我的代碼庫(kù)沒(méi)有任何Objective-C文件,autoreleasepool {}是不必要的?有一個(gè)例子autoreleasepool可以是有用的:- (void)useALoadOfNumbers {     for (int j = 0; j < 10000; ++j) {         @autoreleasepool {             for (int i = 0; i < 10000; ++i) {                 NSNumber *number = [NSNumber numberWithInt:(i+j)];                 NSLog(@"number = %p", number);             }         }     }}如果上面的代碼被autoreleasepool刪除后轉(zhuǎn)換成Swift ,那么Swift是否足夠聰明,知道該number變量應(yīng)該在第一個(gè)之后發(fā)布}(就像其他語(yǔ)言一樣)?
查看完整描述

2 回答

?
開(kāi)滿(mǎn)天機(jī)

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

autoreleasepool返回autorelease對(duì)象(由Objective-C代碼或使用Cocoa類(lèi)創(chuàng)建)時(shí),模式在Swift中使用。autoreleaseSwift中的模式與Objective-C中的模式非常相似。例如,考慮一下你的方法的Swift再現(xiàn)(實(shí)例化NSImageUIImage對(duì)象):

func useManyImages() {
    let filename = pathForResourceInBundle    for _ in 0 ..< 5 {
        autoreleasepool {
            for _ in 0 ..< 1000 {
                let image = NSImage(contentsOfFile: filename)
            }
        }
    }}

如果您在Instruments中運(yùn)行它,您將看到如下的分配圖:

https://img1.sycdn.imooc.com//5d4b8e1c0001a1c604620066.jpg

但是如果你在沒(méi)有自動(dòng)釋放池的情況下這樣做,你會(huì)發(fā)現(xiàn)峰值內(nèi)存使用率更高:

https://img1.sycdn.imooc.com//5d4b8e1e0001170f04620066.jpg

autoreleasepool允許時(shí)自動(dòng)釋放對(duì)象斯威夫特被釋放你明確地管理,就像你能在Objective-C。

注意:處理Swift本機(jī)對(duì)象時(shí),通常不會(huì)收到自動(dòng)釋放對(duì)象。這就是為什么演示文稿提到了在“使用Objective-C”時(shí)只需要這個(gè)的警告,盡管我希望Apple在這一點(diǎn)上更清楚。但是如果你正在處理Objective-C對(duì)象(包括Cocoa類(lèi)),它們可能是自動(dòng)釋放對(duì)象,在這種情況下,Swift對(duì)Objective-C @autoreleasepool模式的再現(xiàn)仍然很有用。


查看完整回答
反對(duì) 回復(fù) 2019-08-08
  • 2 回答
  • 0 關(guān)注
  • 2330 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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