My:Objective-C — различия между версиями
WikiSysop (обсуждение | вклад) |
WikiSysop (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
[a doSomething]; // Obj-C | [a doSomething]; // Obj-C | ||
</pre> | </pre> | ||
+ | Интерфейс объектов в Objective-C выглядит следующим образом: | ||
+ | <pre class="brush:cpp; gutter: false;"> | ||
+ | @interface Rect : NSObject | ||
+ | { | ||
+ | float x, y; | ||
+ | float width, height; | ||
+ | BOOL isFilled; | ||
+ | NSColor * color; | ||
+ | } | ||
+ | + newRect; | ||
+ | - (void) display; | ||
+ | - (float) width; | ||
+ | - (float) height; | ||
+ | - (float) area; | ||
+ | - (void) setWidth: (float) theWidth; // void setWidth(float theWidth) | ||
+ | - (void) setHeight: (float) theHeight; | ||
+ | - (void) setX: (float) theX y: (float) theY; | ||
+ | @end | ||
+ | </pre> | ||
+ | Rect — имя нового класса. | ||
+ | id — это указатель на объект Objective-C. Это эквивалентно void* в C, к которому вы можете привести любой тип указателя на объект, а также привести его к любому другому типу указателя на объект. Вы можете попробовать отправить какое-нибудь сообщение к id, но вы получите исключение в рантайме, если такая возможность не поддерживается. |
Версия 08:32, 23 сентября 2011
Objective-C — это расширенный набор C. Каждая программа, написанная на C, является корректной программой Objective-C. Все новые ключевые слова в Objective-C начинаются с символа @, который не является корректным идентификатором C. Кроме этого вызов методов объектов осуществляется при помощи сообщений [object message];
a.doSomething(); // С++ [a doSomething]; // Obj-C
Интерфейс объектов в Objective-C выглядит следующим образом:
@interface Rect : NSObject { float x, y; float width, height; BOOL isFilled; NSColor * color; } + newRect; - (void) display; - (float) width; - (float) height; - (float) area; - (void) setWidth: (float) theWidth; // void setWidth(float theWidth) - (void) setHeight: (float) theHeight; - (void) setX: (float) theX y: (float) theY; @end
Rect — имя нового класса. id — это указатель на объект Objective-C. Это эквивалентно void* в C, к которому вы можете привести любой тип указателя на объект, а также привести его к любому другому типу указателя на объект. Вы можете попробовать отправить какое-нибудь сообщение к id, но вы получите исключение в рантайме, если такая возможность не поддерживается.