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

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

allocWithZone和NSAllocateObject的區(qū)別是什么?

allocWithZone和NSAllocateObject的區(qū)別是什么?

冉冉說 2019-04-07 09:37:51
《Objective-C編程之道》“第7章單例”中提到用NSAllocateObject來分配可以防止子類分配時(shí)候得到父類的對象。但是據(jù)我測試沒有任何區(qū)別,請知情人士指點(diǎn)。創(chuàng)建對象代碼+(Singleton*)sharedInstance{if(uniqueInstance==nil){uniqueInstance=[[superallocWithZone:nil]init];//uniqueInstance=NSAllocateObject([selfclass],0,nil);}returnuniqueInstance;}測試代碼idchild1=[[Childalloc]init];NSLog(@"child1=%@",child1);idchild2=[[Childalloc]init];NSLog(@"child2=%@",child2);測試結(jié)果2013-03-2216:59:34.634Singleton[5107:303]ThisisSingletondemo.2013-03-2216:59:34.636Singleton[5107:303]child1=2013-03-2216:59:34.637Singleton[5107:303]child2=
查看完整描述

2 回答

?
開滿天機(jī)

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

這是NSObjectClass源碼+(id)allocWithZone:(NSZone*)z
{
returnNSAllocateObject(self,0,z);
}參考這個(gè)鏈接,因?yàn)槟愕膕ingleton可能rootclass不是nsobject,所以直接使用NSAllocateObject.NSProxy就是rootclass,但是它是cocoa下的。iOS下的rootclass就是NSObject就是rootclass,參考。
                            
查看完整回答
反對 回復(fù) 2019-04-07
?
慕妹3146593

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

因?yàn)橐恍﹩卫膶?shí)現(xiàn)會(huì)覆蓋+allocWithZone:方法,直接返回該單例,蘋果文檔中給出的實(shí)現(xiàn)就是這樣。所以你要用NSAllocatObject來創(chuàng)建對象
                            
查看完整回答
反對 回復(fù) 2019-04-07
  • 2 回答
  • 0 關(guān)注
  • 476 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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