[OC学習ノート]プロトコルのいくつかのルール

1464 ワード

OCのプロトコルはJava/C++のインタフェースに相当する
@protocol Drawing
-(void) paint;
-(void) erase;
@optional       //      
-(void) outline;
@end

契約の採用:
@interface AddressBook: NSObject <Drawing>

オブジェクトがDrawingプロトコルに従うかどうかを判断します:id object;if ([object conformsToProtocol: @protocol (Drawing)] == YES)
objectがオプションのoutlineメソッドを実装しているかどうかをテストします:if([object respondsToSelector:@selector(outline)]==YES)
id <NSCopying, NSCoding> object;

既存のプロトコルを拡張するプロトコルを定義します.
@protocol Drawing3D <Drawing>

#define
前処理で改行が必要な場合は、e.g.:#define IS_を付けるLEAP_YEAR(y) y % 4 == 0 && y % 100 != 0\ || y % 400 == 0
#define SQUARE(x) x * x y = SQUARE(v + 1); ———> y = v + 1 * v + 1;
#define SQUARE(x) ((x) * (x))