В Objective-C я могу написать:
id pString = @"Hello, World.";
и компилятор будет создавать экземпляр NSString без необходимости прямого вызова метода factory. Однако NSString действительно является только классом Foundation и, следовательно, предположительно не является частью фактического определения языка Objective-C.
Итак, когда я пишу @"String"
, как компилятор знает, в частности, построить NSString, а не какой-нибудь другой подобный строке объект? Другими словами, где останавливается язык Objective-C и библиотека Foundation?