本文介绍了使用-performSelector:与仅调用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我仍然是Objective-C的新手,我想知道以下两个语句之间有什么区别?

I'm still kind of new to Objective-C and I'm wondering what is the difference between the following two statements?

[object performSelector:@selector(doSomething)]; 

[object doSomething];

推荐答案

基本上,performSelector允许您动态确定在给定对象上调用选择器的选择器.换句话说,不需要在运行时确定选择器.

Basically performSelector allows you to dynamically determine which selector to call a selector on the given object. In other words the selector need not be determined before runtime.

因此,即使这些是等效的:

Thus even though these are equivalent:

[anObject aMethod]; 
[anObject performSelector:@selector(aMethod)]; 

第二种形式允许您执行以下操作:

The second form allows you to do this:

SEL aSelector = findTheAppropriateSelectorForTheCurrentSituation();
[anObject performSelector: aSelector];

在发送消息之前.

这篇关于使用-performSelector:与仅调用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 08:41