NSString *name = [NSString stringWithFormat:@"%@", @"Peter"];这个代码看起来更像是人造的,而不是实际使用需要的一段代码,但是它对于展示Objective-C运行时的具体工作方式是很重要的。当上述代码执行完毕后,我们最终获取到的是一个叫做name的变量,该变量是NSString类的一个实例,请细想一下以下知识:
NSUInteger len = [name length];
NSString *name = [NSString stringWithFormat:@"%@", @"Peter"];上述代码中,消息stringWithFormat:是向类NSString发送的。类可以接收消息吗?如果可以,那么那些方法保存在哪里呢?事实上是这样的,Objective-C的语法隐藏了一些东西,他隐藏了类也是对象的事实。
@interface Person : NSObject {} + (void) aClassMethod; - (void) anInstanceMethod; @end也许你看过这种类似的代码很多很多,但是这这段代码干嘛的?
NSString *name = [NSString stringWithFormat:@"%@", @"Peter"];当向对象NSString发送消息stringWithFormate:的时候,Objective-C将会:
原文地址:http://blog.csdn.net/arbboter/article/details/42741739