@blog.justoneplanet.info

日々勉強

Objective-Cの基本

■コメント

// 一行の場合
/*
複数行の場合
*/

■ステートメント

// 一行の場合
/*
複数行の場合
*/

■ファイル

インターフェースファイル

.hの拡張子ファイルのもので、クラスの定義を記述する。

#import <Foundation/Foundation.h>
@interface Animal:NSObject {
    id _name;
}
@property(copy, readwrite) NSString *_name;
-(id)         init:(NSString *)name;// initialize
-(NSString *) cry: (NSString *)name;// instance method
+(NSString *) getKind;              // class method
@end

実装ファイル

#import "Animal.h"
@implementation Animal
@synthesize _name;
- (id) init: (id) name {
    [super init];
    self._name = name;
    return self;
}
-(NSString *)cry: (NSString *)name{
    return [NSString stringWithFormat:@"cry! from %@ to %@", self._name, name];
}
+(NSString *)getKind{
    return @"Animal";
}
@end

コンストラクタというものはない。イニシャライズというのがそれに近い気がする。

■インポート

以下のように記述して外部ファイルをインポートする。

標準ライブラリのディレクトリから

#import <lib.h>

例えば以下のように記述する。

#import <UIKit/UIKit.h>

現在のディレクトリから

#import "filename.h"

PHPのrequire_onceのように、一度インポートされたら再度インポートされない。C言語のincludeとは、その点が異なる。

■コンパイラディレクティブ

宣言

クラスの宣言
@interface
クラスの実装
@implementation
プロトコル宣言
@protocol
上述の宣言の終了
@end

可視性

// 宣言したクラスのみ
@private

// 宣言したクラスとサブクラス
@protected

// すべてのクラス
@public

指定しない場合はprotectedとなりsetterやgetterを使ってアクセスすることになる。

例外

以下のように記述して例外をキャッチする。

@try {
    // something
}
@catch (NSException *exception) {
    NSLog(@"main: Caught %@: %@", [exception name], [exception reason]);
}
@finally {
    // something
}

また、以下のようにして例外をスローする。

NSException *exception = [NSException exceptionWithName:@"HogeException" reason:@"No, hogehoge!" userInfo:nil];
@throw exception;

他の場所で定義されたクラスの名前を宣言

@class

指定されたメソッドを識別するセレクタ

@selector(method)

指定された名前のプロトコル

@protocol(name)

指定された構造体をエンコードする文字列

@encode(spec)

指定されたクラスのインスタンスの内部データ構造

@defs(className)

NSStringオブジェクト

@"hogehoge"

1スレッドのみ実行可能なブロックの定義

@synchronized

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment