在Objective-C中,我可以写:
id pString = @"Hello, World.";
Run Code Online (Sandbox Code Playgroud)
并且编译器将实例化NSString而不需要显式调用工厂方法.但是,NSString实际上只是一个Foundation类,因此可能不是实际Objective-C语言定义的一部分.
因此,当我编写时@"String"
,编译器如何知道特别是构建NSString,而不是其他类似字符串的对象?换句话说,Objective-C 语言停止在哪里,基础库开始?
objective-c ×1