为什么在Objective-C中为每个对象变量声明类型?

lin*_*997 5 objective-c

由于Objective-C是一种动态类型语言,为什么我们仍然需要类型?是因为它与C代码混合了吗?

Gab*_*lla 18

Objective-C不与C混合,它是 C 的适当超集,具有一些动态特征.

您可以避免在任何Objective-C对象变量上使用静态类型并将所有内容声明为id,但我不明白您为什么要这样做.
由于类型信息(提供或推断),您将失去编译器给您的所有帮助.

要包装它,你不需要类型,你想要类型.

  • 你可以"达到"C的事实正是它成为超集的原因.它不隐藏C,它包含它.来自wiki:*可以使用Objective-C编译器编译任何C程序,并在Objective-C类*中自由包含C代码.相关:http://stackoverflow.com/questions/2963832/is-objective-c-2-0-a-proper-superset-of-c (5认同)
  • 究竟; 如果没有强大的对象类型,那么编译时错误就会变成运行时错误,通常在您的[潜在]客户手中运行时......弱类型语言*糟糕*用于构建复杂的应用程序. (3认同)