为什么在Objective-C中的结构中使用函数指针?

时间:2010-02-01 00:24:47

标签: c objective-c struct function-pointers

我刚读了这个Use C Struct in Objective C问题,我想知道为什么有人想在结构中使用函数指针。 不会将类中的函数包装成等效的吗?

2 个答案:

答案 0 :(得分:3)

我不认为你在objective-c中需要这样的东西。

这就是你在C中实现多态的方法。就像定义一个接口一样。一些框架(包括内核?文件系统?)会希望你传入一个带有你的函数的结构,框架会在发生某些事件时调用它们。

如果你真的需要我认为你可以使用来自objective-c的c ++和struct / classes而不是使用带有函数指针的普通C结构,但你应该可以使用objective-c。

答案 1 :(得分:2)

函数指针的使用方式类似于C中用于创建多态行为,类似于穷人的对象。除了符合现有的C库之外,我能想到这样做的唯一原因是获得比objective-c方法调度更高的性能优势。