NSClassFromString () против classNamed: (NSString *) - PullRequest
6 голосов
/ 29 июня 2011

Из того, что я прочитал, кажется, есть два способа получить объект по имени класса.Каковы различия между NSClassFromString() и NSBundle classNamed:(NSString *)?

1 Ответ

6 голосов
/ 29 июня 2011

NSClassFromString() возвращает класс, который был зарегистрирован во время выполнения для данного имени. classNamed: NSBundle возвращает класс с заданным именем внутри пакета, который, возможно, еще не был загружен (что означает, что он будет загружать пакет при необходимости).

Но по-другому: NSBundle, вероятно, не знает обо всех классах, загруженных во время выполнения вашего приложения (хотя, если это ваш основной комплект, он, вероятно, знает о большинстве ваших классов). И наоборот, среда выполнения вашего приложения не будет знать обо всех классах в пакете до его загрузки.

...