Nik*_*uhe 20
在一句话中:Objective-C决定在这样做之前调用哪个方法实现(在运行时).这个想法是方法名称和实现之间的联系是动态的.例如,C++在编译期间执行此操作.
例:
id object = @"1";
int i = [object intValue];
object = @1;
i = [object intValue];
Run Code Online (Sandbox Code Playgroud)
在此示例中,intValue消息首先发送到实例,NSString然后发送到NSNumber.编译器发出的代码对于两个调用都是相同的 - 实际上编译器甚至不知道它向哪个对象发送消息(如类型所示id).
运行时决定调用哪个实现从字符串或者提取int值NSNumber.