Objective c 选择器的需求是什么?
可能重复:Objective c 选择器的需求是什么?,objective-c,selector,objective-c-runtime,Objective C,Selector,Objective C Runtime,可能重复: 我已经阅读了苹果关于选择器的文档,但我仍然不明白为什么需要它们 据我所知,选择器相当于函数指针。是吗?选择器不是函数指针 选择器是唯一的地址方法标识符(消息名称)。messenger函数(objc_msgSend_*())需要它们才能快速运行:在查找方法名称时,messenger不需要每次都进行相当昂贵的字符串比较,因为选择器在内存中有唯一的地址,所以简单的指针比较就足够了。选择器不是函数指针 选择器是唯一的地址方法标识符(消息名称)。messenger函数(objc_msgSen
我已经阅读了苹果关于选择器的文档,但我仍然不明白为什么需要它们
据我所知,选择器相当于函数指针。是吗?选择器不是函数指针
选择器是唯一的地址方法标识符(消息名称)。messenger函数(objc_msgSend_*())需要它们才能快速运行:在查找方法名称时,messenger不需要每次都进行相当昂贵的字符串比较,因为选择器在内存中有唯一的地址,所以简单的指针比较就足够了。选择器不是函数指针
选择器是唯一的地址方法标识符(消息名称)。messenger函数(objc_msgSend_*())需要它们才能快速运行:当查找方法名时,messenger不需要每次都进行相当昂贵的字符串比较,因为选择器在内存中有一个唯一的地址,因此,一个简单的指针比较就足够了。选择器用于获取对象的方法实现
例如,几乎每个对象都实现了
description
方法,即使它从其超类继承了实现。函数指针只能指向说明
的一个特定实现(例如,它只能指向NSString的版本或NSNumber的版本,但不能同时指向两者)。您不能将一个类的description
实现的函数指针用于每个类,但您可以使用相同的description
选择器,并且无论使用哪个对象作为目标,始终使用正确的方法实现。选择器用于获取对象的方法实现
例如,几乎每个对象都实现了description
方法,即使它从其超类继承了实现。函数指针只能指向说明
的一个特定实现(例如,它只能指向NSString的版本或NSNumber的版本,但不能同时指向两者)。您不能将一个类的描述
实现的函数指针用于每个类,但您可以使用相同的描述
选择器,并且无论使用哪个对象作为目标,都将始终使用正确的方法实现。和的可能重复和可能重复