獲取ios私有方法

2021-07-02 18:33:36 字數 1456 閱讀 4110

objecitve-c的重要特性是runtime(執行時),在interacting with the runtime(互動執行)中,執行時函式部分,蘋果給出了/usr/lib/libobjc.a.dylib庫,這個共享庫提供支援動態屬性的objective - c語言,通過其介面,可以用於開發將其他語言執行於objective-c上的中間層(橋接層),庫里的函式定義為純c語言。

例如:class_getname

[cpp]view plain

copy

print?

class_getname  

returns the name of a class

.  const

char

* class_getname(class cls)  

parameters  

cls  

a class

object.  

return value  

the name of the class

, or the empty string 

ifcls is nil.  

declared in  

runtime.h  

這裡我們要用庫里的函式,幹個「壞事」,檢視蘋果sdk的私有方法。

第一步:匯入標頭檔案

[cpp]view plain

copy

print?

#import 

第二步:新增下列**

[cpp]view plain

copy

print?

nsstring *classname = nsstringfromclass([uiview 

class

]);  

const

char

*cclassname = [classname utf8string];  

id theclass = objc_getclass(cclassname);  

unsigned int

outcount;  

method *m =  class_copymethodlist(theclass,&outcount);  

nslog(@"%d"

,outcount);  

for(

inti = 0; i

sel a = method_getname(*(m+i));  

nsstring *sn = nsstringfromselector(a);  

nslog(@"%@"

,sn);  

}   

第三步:想看什麼類 就把uiview換成你想要的

當然,如果只是檢視私有api,會有更簡單的方法,可以使用工具class-dump,也可以通過此鏈結,    檢視。

Python 私有方法,專有方法

python的私有方法 以 雙劃線開頭,但不以雙劃線結尾,privatemethod 專有方法 以雙劃線開頭和結尾,init e.gclass person def init self,name self.name person def getname self return self.name a...

私有變數和私有方法

person.h oc語言學習 import 例項變數 成員變數 既可以在 inte ce中定義,也可以在 implementation中定義 inte ce person nsobject 如果只有方法的實現,沒有方法的宣告,那麼該方法就是私有方法 但是在oc中沒有真正的私有方法,因為oc是訊息機...

私有屬性和私有方法

應用場景及定義方式 應用場景 在實際開發中,物件的某些屬性或方法可能只希望在物件的內部使用,而不希望在外部被訪問到 私有屬性 就是 物件 不希望公開的 屬性 私有方法 就是 方法 不希望公開的 方法 定義方法 在定義屬性或方法時,在屬性名或者方法名前增加兩個下劃線,定義的就是私有屬性或方法 clas...