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

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

關(guān)于objective-c類方法與實(shí)例方法的一些疑問

關(guān)于objective-c類方法與實(shí)例方法的一些疑問

慕森王 2019-04-21 20:41:43
之前都是在搞前端js之后寫ios開始慢慢接觸objective-c有個(gè)疑問//實(shí)例方法調(diào)用NSString*str1=[[NSStringalloc]initWithString:@"123123"];//類方法調(diào)用NSString*str2=[NSStringstringWithString@"123123"];我的疑問可能用上面例子會不太能凸顯出來疑問在于,實(shí)例方法必須創(chuàng)建一個(gè)實(shí)例后使用實(shí)例進(jìn)行調(diào)用也就是內(nèi)存中必存在一個(gè)實(shí)例如果我想不通過實(shí)例來達(dá)到某些操作那在設(shè)計(jì)API時(shí)可以設(shè)計(jì)成類方法,這樣就可以直接通過類名進(jìn)行調(diào)用但是這種情況難道就不會生成實(shí)例在內(nèi)存中了嗎??或者說,雖然沒有生成實(shí)例,但內(nèi)存依然會分配空間那如果[XXXClassabc];[XXXClassbcd];[XXXClasscde];[XXXClassdef];這種情況下,內(nèi)存會分配多少塊內(nèi)存空間呢?而但代碼域(如方法內(nèi))結(jié)束后,內(nèi)存空間又是否能正常釋放呢?
查看完整描述

2 回答

?
偶然的你

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

你給的例子中,不管是對象方法還是類方法,它們的目的都是要得到一個(gè)對象實(shí)例。不首先分配內(nèi)存空間,拿什么去配置你的對象呢。說不定類方法里面是這么實(shí)現(xiàn)的:
+(instancetype)stringWithString:(NSString*)string{
NSString*str=[[selfalloc]initWithString:string];
returnstr;
}
                            
查看完整回答
反對 回復(fù) 2019-04-21
?
米琪卡哇伊

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

按住ctrl點(diǎn)NSString進(jìn)去看。
-(instancetype)initWithString:(NSString*)aString;
+(instancetype)stringWithString:(NSString*)string;
看這兩個(gè)方法的前面,一個(gè)是“-”一個(gè)是“+”
在oc里面,如果用加號申明一個(gè)方法的話,是不需要實(shí)例化就可以調(diào)用這個(gè)類的方法。
如果用減號申明一個(gè)方法,那么需要先alloc實(shí)例化一個(gè)對象才能對這個(gè)類里的方法進(jìn)行調(diào)用。
                            
查看完整回答
反對 回復(fù) 2019-04-21
  • 2 回答
  • 0 關(guān)注
  • 329 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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