本文内容参考自stackOverFlow,参考链接

id 和 void* 的区别

void *

  • void * 表示对一些包含未输入/未知内容的随机内存快的引用,void *的一个常见且有效的用法是作为一个通过其他API传递的不透明数据引用。

id

  • id 表示某个未知类的Objective-C对象的引用

区别

  • 尝试在void *类型的引用上调用方法将引发编译器警告。尝试调用id类型上的方法只有在编译器看到的任何@interface声明中没有声明被调用的方法时才会发出警告。

总结

  • 因此,永远不要将对象引用为void *。类似地,应该避免使用id类型变量来引用对象。尽可能使用最特定的类类型引用。甚至NSObject *也比id好,因为编译器至少可以提供更好的方法调用验证。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-03-10
  • 2022-12-23
  • 2021-10-28
  • 2021-07-17
  • 2022-12-23
  • 2021-05-15
猜你喜欢
  • 2021-10-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
相关资源
相似解决方案