奇思妙想 · 2024年 4月 16日 0

ObjC为什么有方括号调用方法的语法?

27 次浏览

[object doSomething]的意义和object.doSomething()的意义是完全不同的,也许可以简单理解成都是调用了doSomething方法。事实上,前者代表向object发送doSomething消息,后者则是和C语言类似,代表一个方法调用。前者会将消息发送到一个运行时,运行时将会寻找对应object的对应方法,也许没找到,也许会找到。ObjC增加方括号发送消息,是为了兼容C语言本身的函数调用,不至于出现二选一的境地。