在Objective-C中省略返回类型和参数类型

时间:2013-11-20 09:16:30

标签: objective-c

  

如果未显式声明返回或参数类型,则假定它是方法和消息的默认类型 - id

所以毫无疑问它在技术上如何运作,但是,是否建议省略类型或者这只是不好的做法? Apple有没有关于此的官方指南?

3 个答案:

答案 0 :(得分:3)

这是不好的做法。这是从C早期的宿醉。不要这样做,零上升。

答案 1 :(得分:1)

这是非常罕见的,因此不推荐。我还没有在Apple的一个标题中遇到过一次。

有点像C标准允许调用未知函数(没有原型的函数):可能 - 但不可取。

此外,返回id的机会越来越少。

答案 2 :(得分:0)

指定类型有助于编译器密切关注您正在做的事情,它在运行时没有任何区别(但如果您将对象发送到无法接收它的对象,您的应用程序将崩溃)。

id 仅表示任何对象

如果您需要在某处处理多种类型的对象,可以使用 id ,但是您最好知道自己在这里做了什么,并且可能希望使用内省来防止您的应用程序因发送到不合规对象的消息而崩溃。