国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Objective-C無私有方法問題
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-22 08:59:28
0
4
541

如題,Objective-C無私有方法是什麼意思?確實(shí)我在.h文件中聲明的所有方法除了靜態(tài)方法就是public方法,但是我再.m文件中隨便聲明的方法,子類是看不到的,當(dāng)然performselector還是可以執(zhí)行的,但是這樣算不算是一種私有方法呢?

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級PHP講師

全部回覆(4)
PHPzhong

建議看看 http://blog.sunnyxx.com/2014/04/13/objc_dig_interface/

Ty80

obj c沒有嚴(yán)格的私有方法, 這是它的方法呼叫機(jī)制決定的, 在obj c裡呼叫一個(gè)物件的某個(gè)方法, 其實(shí)就是給這個(gè)物件一個(gè)訊息, 這個(gè)物件看看自己能不能處理這個(gè)訊息,如果能處理就呼叫對應(yīng)的方法實(shí)現(xiàn), 如果不能處理就會拋異常,這個(gè)完全是運(yùn)行時(shí)的動作。所以即便一個(gè)沒有在頭文件裡顯示聲明的方法, 也可以在運(yùn)行時(shí)被調(diào)用, 而且是跟你在頭文件裡聲明了沒有區(qū)別, 最多就是在xcode裡會給你一個(gè)warning。

靜態(tài)方法也是一樣, 因?yàn)橐粋€(gè)類別本身也是一個(gè)對象, 呼叫靜態(tài)方法, 也就是給這個(gè)對象發(fā)送一個(gè)訊息。

所謂的私有方法(不定義在頭文件裡),我個(gè)人覺得更多的是一種程式設(shè)計(jì)師們對自己的約束, 比如沒放在頭文件裡, 就是不暴露出去的意思, 就是這個(gè)方法是不希望在外面被調(diào)用到的, 雖然你想用的話一樣可以用。

參考這篇文章, 說的很詳細(xì)清楚: http://blog.jobbole.com/45963/

劉奇

有啊,interface中的類別目和延展就相當(dāng)於私有方法。
類別目:類別名稱+擴(kuò)充方法;延展:@implementation區(qū)域
你可以去搜尋一下。

洪濤

所有在.h 中聲明的方法,預(yù)設(shè)都是公開的。
如果想它變成私有的,無須在.h中聲明,直接在.m中實(shí)現(xiàn)即中。建議所有私有方法以p_開頭,ex:
- (void) p_myFirstMethod
{
//todo..
}

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板