ホーム > 開発 > CocoaSharpファーストインプレッション

CocoaSharpファーストインプレッション

OSX用のMonoには、C#のCocoaバインディングが含まれています。
面白そうなので、試しにヒレガス本のサンプルを移植してみました。

randomapptar.gz

Nibのアウトレットやアクションを、C#のフィールやメソッドに結合させる時にアトリビュートを使うのですが、メソッドなどの名称だけを使うよりもスマートな手法だと感じました。

// クラス
[Register("Foo")]
public class Foo : NSObject {
}

// アウトレット
[Connect]
public NSTextField textField;

// アクション
[Export("generate:")]
public void generate(object sender) {
}

Exportで指定するのはObjective-Cのシグニチャでなので注意が必要です。awakeFromNibを定義した時に、うっかり末尾に「:」を付加してハマりました。

唯一不自然な部分は、Nibからロードするクラスには下記のコンストラクタを用意する必要がある事なのですが、定型なので許容範囲だと思います。

// コンストラクタ
protected Foo(System.IntPtr raw, bool release)
  : base(raw, release) {
}

コンストラクタを忘れると、イベントが発生したとたんに落ちます。

大変面白いと思いますが、現状ではXcodeでデバックするような事は出来ないので、直ぐにObjective-CやJavaの代わりにはならないです。

広告
カテゴリー:開発 タグ:
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。