My:Objective-C — различия между версиями

Материал из synset
Перейти к: навигация, поиск
Строка 26: Строка 26:
 
Rect  — имя нового класса.
 
Rect  — имя нового класса.
 
id — это указатель на объект Objective-C. Это эквивалентно void* в C, к которому вы можете привести любой тип указателя на объект, а также привести его к любому другому типу указателя на объект. Вы можете попробовать отправить какое-нибудь сообщение к id, но вы получите исключение в рантайме, если такая возможность не поддерживается.
 
id — это указатель на объект Objective-C. Это эквивалентно void* в C, к которому вы можете привести любой тип указателя на объект, а также привести его к любому другому типу указателя на объект. Вы можете попробовать отправить какое-нибудь сообщение к id, но вы получите исключение в рантайме, если такая возможность не поддерживается.
 +
 +
'''Class1.h:'''
 +
<pre class="brush:cpp; gutter: false;">
 +
#import <Foundation/Foundation.h>
 +
@interface Class1 : NSObject {
 +
    int var1;
 +
}
 +
-(void) setVariable;
 +
@end
 +
</pre>
 +
'''Class1.m:'''
 +
<pre class="brush:cpp; gutter: false;">
 +
#import "Class1.h"
 +
@implementation Class1
 +
-(void) setVariable{ var1 = 5; }
 +
@end
 +
</pre>

Версия 08:41, 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, но вы получите исключение в рантайме, если такая возможность не поддерживается.

Class1.h:

 
#import <Foundation/Foundation.h>
@interface Class1 : NSObject {
    int var1;
}
-(void) setVariable;
@end

Class1.m:

 
#import "Class1.h"
@implementation Class1
-(void) setVariable{ var1 = 5; }
@end