2012-07-02 4 views
0

Использование различных фреймворков в моих проектах Я часто сталкивался с пользовательскими элементами, которые были созданы как наследование класса из NSObject (исправьте меня, если что-то не так). Каковы основные правила создания таких элементов интерфейса?Создание пользовательских объектов наследует класс NSObject

ответ

4

NSObject - самый простой класс в Какао. Он отвечает за самые основные вещи, которые нужны каждому классу, такие как управление памятью. (Почти) все классы в Cocoa наследуются от NSObject, и вы обычно используете подкласс NSObject, если вы хотите реализовать класс модели.

Если вы хотите создать свой собственный элемент графического интерфейса, вы должны подклассы UIView или UIControl. UIView предоставит вам возможности для создания пользовательского чертежа, обработки событий касания и других. UIControl (который сам является подклассом UIView) добавляет функциональность для элементов управления, с которыми пользователь может взаимодействовать, например UITextField, UISlider и т. Д. Это то, что вы должны подклассы, если вы планируете внедрять настраиваемый элемент управления.

+0

Не все классы наследуются от 'NSObject'. Например, 'NSProxy' используется для классов пересылки сообщений (« прокси »). –

+0

Исправлено это, спасибо. – DrummerB

1

Основной целью использования пользовательских объектов является создание классов моделей, которые помогают хранить данные, которые могут использоваться вне приложения.

См., Например, -

@interface ServerResponse 
..... 
@property (nonatomic, retain) NSString *responseString; 
@property (nonatomic, retain) NSArray *errorCodes; 
..... 
@end 

В дополнение к этому NSObject является корневой класс в Objective классов C. Большинство наследуют особенность NSObject Classs.

+0

'NSObject' является только * одним * корневым классом в Objective-C. Не все классы наследуют от него. –

+0

@JonathanGrynspan - обновлено. – rishi

1

Если вы создаете элементы пользовательского интерфейса, вы можете наследовать от NSObject, однако я настоятельно рекомендую унаследовать от UIView или UIControl. В противном случае вы просто будете воссоздавать функциональность, уже заданную UIControl.

Кроме того, если вы просто хотите добавить дополнительные функции к существующему элементу пользовательского интерфейса, вы можете расширить (создать категорию), чтобы добавить эту функциональность.

Смежные вопросы