日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java私有方法_如何调用私有方法

發(fā)布時(shí)間:2024/1/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java私有方法_如何调用私有方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng)不涉及到用戶隱私的時(shí)候,我們調(diào)用私有方法一般都沒有什么問題。

在我們調(diào)用私有方法之前,我們必須要先知道你想調(diào)用的對(duì)象有哪些私有方法,和需要參數(shù)的那些方法的參數(shù)類型,和返回值的類型是多少。

查看私有方法名,參數(shù)類型和返回值類型

- (void)scanMethodsTwo:(Class)class {

unsigned int outCount = 0; // unsigned int :是無(wú)符號(hào)基本整型,沒有負(fù)數(shù)

Method *methods = class_copyMethodList(class, &outCount); // 獲取類的方法列表

for (int i = 0; i < outCount; i++) {

Method method = methods[i];

// 獲取方法名

SEL sel = method_getName(methods[i]);

NSLog(@"方法名==== %@", NSStringFromSelector(sel));

// 獲取參數(shù)

char argInfo[512] = {};

unsigned int argCount = method_getNumberOfArguments(method);

for (int j = 0; j < argCount; j++) {

// 參數(shù)類型

method_getArgumentType(method, j, argInfo, 512);

NSLog(@"參數(shù)類型=== %s", argInfo);

memset(argInfo, '\0', strlen(argInfo));

}

// 獲取方法返回值類型

char retType[512] = {};

method_getReturnType(method, retType, 512);

NSLog(@"返回值類型=== %s", retType);

}

free(methods);

}

調(diào)用無(wú)參數(shù)方法

當(dāng)知道方法名過后,我們調(diào)用沒有參數(shù)的私有方法,有兩種:

方法一:使用performSelector來(lái)調(diào)用

[button performSelector:@selector(updateConstraints)];

方法二:也可以使用objc_msgSend來(lái)調(diào)用,但是是有這個(gè)必須要導(dǎo)入#import ,#import 這兩個(gè)頭文件。

((void(*)(id,SEL))objc_msgSend)(button, @selector(updateConstraints));

如果要使用下面這種寫法,必須要在項(xiàng)目配置文件 -> Build Settings -> Enable Strict Checking of objc_msgSend Calls 這個(gè)字段設(shè)置為 NO, 默認(rèn)為YES.

objc_msgSend(button, @selector(updateConstraints));

調(diào)用有參數(shù)方法

要使用objc_msgSend來(lái)調(diào)用,并傳遞參數(shù)

((void(*)(id,SEL, CGRect))objc_msgSend)(button, @selector(setFrame:), CGRectMake(200, 100, 50, 50));

objc_msgSend(button, @selector(setFrame:), CGRectMake(200, 100, 50, 50));

總結(jié)

以上是生活随笔為你收集整理的java私有方法_如何调用私有方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。