Objective c 目标C:实践中的通用指针

Objective c 目标C:实践中的通用指针,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,纳马斯特!你们这些有经验的人在日常工作中使用通用指针的频率是多少?在cocoa touch开发中,通用指针的共同用途是什么 编辑 声明为指向void的指针的变量是泛型指针 有这样的事。它可以设置为任何变量类型的地址。我只是想知道人们在现实生活中是如何使用这种指针的 谢谢你的否决投票。在ObjC中,void*适用的情况越来越少。它们仍然被用于一些事情,比如KVO的上下文指针,但随着ARC的增加,即使是在这种情况下使用它们也是一件痛苦的事情。基本上,如果您需要询问何时使用void*,您可能不应该使用

纳马斯特!你们这些有经验的人在日常工作中使用通用指针的频率是多少?在cocoa touch开发中,通用指针的共同用途是什么

编辑

声明为指向void的指针的变量是泛型指针

有这样的事。它可以设置为任何变量类型的地址。我只是想知道人们在现实生活中是如何使用这种指针的


谢谢你的否决投票。

在ObjC中,
void*
适用的情况越来越少。它们仍然被用于一些事情,比如KVO的上下文指针,但随着ARC的增加,即使是在这种情况下使用它们也是一件痛苦的事情。基本上,如果您需要询问何时使用
void*
,您可能不应该使用
void*
。它们在核心框架的回调中更为常见,通常也用于上下文指针


但对于“你在日常生活中多长时间…[使用
void*
]”这个问题,答案是“很少,而且尽可能少。”

你所说的“通用指针”是什么意思?
id
类型?什么是通用指针?你是说身份证吗?我不确定这个问题是否有确切的答案。虽然objective C的动态方面很好且灵活,但我倾向于在自己的代码中避免使用泛型指针类型id。并不是说使用它是错误的,我只是希望尽可能地编写特定类的代码。IDIMO应该保留在任何情况下都可以使用,所以您可以看到它在回调和委托中被大量使用。它非常灵活,但只有在需要的时候才需要它,因为它有明确的答案。当然,通用指针可以在现实生活中使用。比如>操作符。我只是想知道有经验的人使用这些东西的频率。@Richard J.Ross III是一个声明为指向void的指针的变量。我希望我能投两次票:“基本上,如果你需要问什么时候使用void*,你可能不应该使用void*”。谢谢Rob。你的答案是清楚完整的。很抱歉,这是错误的-目标C中的通用指针是id-它不是S C中的空指针。空指针根本不在目标C中使用。OP明确地说他在询问空指针。虽然我希望在ObjC中不要使用void指针,但它们确实是。有关上下文指针的示例,请参见AddObserverr:forKeyPath:options:context:,beginAnimations:context:,sortedArrayUsingFunction:context:。此外,有许多例程引用
void*
来处理原始内存,例如encoderayofobjctype:count:at:,getBytes:,appendBytes:length:,等等。还有一些特别棘手的例程(从弧的角度来看),比如getReturnValue:。正如我所说,这些不是初学者常用的,但是有很多。