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

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

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

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

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

2 回答

?
慕森王

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

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

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

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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