2010年10月9日土曜日
doxygenでObjective-CソースからDoc生成
2010年9月27日月曜日
GWT Designer
GWTDesigner について
使い勝手
2010年9月24日金曜日
iPad から VGA出力
iPadからVGA出力
概要
NSArray * screenModes;
UIScreen * externalScreen;
1、外部スクリーン数を取得し、1より多い=外部スクリーンがある、と見なす。
rect.size = desiredMode.size;
externalWindow.frame = rect;
[externalWindow makeKeyAndVisible];
2010年7月12日月曜日
NGを画像化する
NGを画像化する
概要
不測のバグに対して悪影響を生みそうだが、グラフィカルなバグに関して人の目で
2010年6月14日月曜日
Mac用のタイムスタンプ入力ショートカット
Mac用のタイムスタンプ入力ショートカット
ダウンロード
http://www.devon-technologies.com/download/index.html
からDL
Freeware Applications and Servicesの中にある。
インストール方法
0.ダウンロードする。
WordService.service ファイルを含んだフォルダ WordService が手に入るはず。
1.HD > "ライブラリ" 下に、"Services" フォルダを作成する。
(今までにインストールしたソフトによって、すでに有る場合もあるかも。)
ダウンロードしてきたWordService.serviceを、上記フォルダに入れる。
2.ログアウト&ログイン
Serviceがログインに絡んで設定される機能のため、
一度ログアウト(終了でもOK)する。
3.テキストエディットを起動、
テキストエディット > サービス > サービス環境設定 を開く
先ほどインストールした内容が、一覧で表示される筈。
4.特定のチェックボックスにチェックを入れる
Long Date,
Long Date & Time,
Short Date,
Short Date & Time,
Time
以上のチェックボックスにチェックを入れる。(使いたい機能の物だけ選択してもいい。)
5.再びテキストエディット
テキストエディット > サービス を選ぶと、上記4で選んだ項目が表示されている筈。
選択すると、文面に時刻が入る。
⌘+{ や、 ⌘+_ で使えるShort Date 系が便利。
より詳細に編集、コマンド割当ができるのかな。
→ぱっと見できませんでした。
入れてみて
他にも、いろいろあるようで。探すと面白いかもしれない。
関数計算、とか。
雑感、Objective-CとHTML5
雑感、Objective-CとHTML5 by -toru inoue 10/06/14 11:59
メッセージングがあるから、宛先を決めずにメッセージを放送(指向性のない出力、ブロードキャスト)し、
2010年6月13日日曜日
Objective-Cでのメッセージングシステム
Objective-Cでのメッセージングシステム
概要
Objective-Cのメッセージングのシステムを使い、
インスタンス間の通信を行うクラスを自作した。
NSNotification を応用した、メッセージ伝達を行う。
このクラスのインスタンスをもつオブジェクト同士は、
お互いのポインタを全く知らない(保持しない)状態での交信が可能になる。
一言で言うと、アプリ内疑似サーバ立ち上げ機能である。
通信の順序は、タイマー実行を行わない限り、NSNotificationのシステムにより、
通信完了まで確実に入力順が保たれる(メッセージの追い越しは発生しない)
メッセージングする同士のIdentifyを確認するためのキーとして、
Identifier(メッセージの送信者を特定するためのID、int値)を用意する必要がある。
セントラル/レシーバーという役割分担を行う必要がある。
セントラルからのメッセージングは、セントラル自身と指定したレシーバーへと伝達される。
レシーバーからのメッセージは、セントラルへと伝達される。
おまけで、下記実行を可能にしてある。
・遅延実行(別スレッドでの実行を可能にする)
・コマンドの入力(ヘッダクラス参照)
ダウンロード
http://homepage.mac.com/sassembla/download/messagesystem/com.zip
設計思想
このクラスに自発的に用意されている制限として、セントラルは一つ、レシーバーは一つあるいは
複数存在する事が想定されている。
各レシーバーからのメッセージは、必ずセントラルへ集約され、セントラルで状態によって各レシーバー
(か、セントラル自身)へとメッセージを伝達、処理を進める事が可能。
→このような区別が存在する理由は、下記2つ。
・完全にレシーバー間の通信を行う場合、メッセージ内容を把握する事が不可能になるため。
・メッセージの分別によってアプリケーションを複数のモジュールに分解し、
分業を可能にするための、最低限の仕組み化のため。
使用例
下記のように使用する。
1.初期化:
セントラル.h
//インスタンスを設定する
MessageSystem * messenger_default_reciever;
セントラル.m
//メッセージシステムインスタンスをセントラルとして初期化する。
messenger_default_observer = [[MessageSystem alloc] initWithCentralObserver:self centralNamed:@"" recieverNamed:@"" withIdentifier:0 withVersion:20100610 withSelector:@selector(defaultCentral:)];
//メッセージを受信したとき行うメソッド、- (void) defaultCentral:(NSNotification * )notification を用意する
- (void) defaultCentral:(NSNotification * )notification {
NSLog(@"defaultCentral");
NSMutableArray * array = (NSMutableArray *)[notification userInfo];
int sender = [[array objectAtIndex:MESSAGE_SENDER] intValue];
NSLog(@"sender_%d", sender);
int command = [[array objectAtIndex:MESSAGE_STATEMENT] intValue];
NSLog(@"command_%d",command);
}
レシーバー.h
//インスタンスを設定するMessageSystem * messenger_default_reciever;
レシーバー.m
//メッセージシステムインスタンスをレシーバーとして初期化するmessenger_default_reciever = [[MessageSystem alloc] initWithRecieverObserver:self centralNamed:@"" recieverNamed:@"" withIdentifier:1 withVersion:20100610 withSelector:@selector(defaultRecieve:)];
//メッセージを受信したとき行うメソッド、- (void) defaultRecieve:(NSNotification * )notification を用意する
- (void) defaultRecieve:(NSNotification * )notification {
NSLog(@"defaultRecieve");
NSMutableArray * array = (NSMutableArray *)[notification userInfo];
int sender = [[array objectAtIndex:MESSAGE_SENDER] intValue];
NSLog(@"sender_%d", sender);
int command = [[array objectAtIndex:MESSAGE_STATEMENT] intValue];
NSLog(@"command_%d",command);
}
2.実行
[messenger_default_observer sendMessage:100,nil];
//セントラル.mのインスタンスにて、defaultCentralメソッドが発動する。
→セントラルからセントラルへのメッセージ送付にはsendMessageメソッドを使用する。 宛先指定は特にない。
[messenger_default_observer flushMessageTo:1 withNil:101,nil];
→セントラルからレシーバーへのメッセージ送付にはflushMessageToメソッドを使用する。 宛先指定は1の部分。
[messenger_default_reciever sendMessage:102,nil];
//セントラル.mのインスタンスにて、defaultCentralメソッドが発動する。
→レシーバーからセントラルへのメッセージ送付にはflushMessageToメソッドを使用する。 宛先指定は特にない。
MessageSystemのインスタンス同士に、クラス間の関連や、ポインタの共有が一切無い、ということに注目。
・今のところ、単一の識別子しか使えない
・Deallocが非常に難しい
・ポインタを管理する必要が無いようにできたりできなかったり
と書くと、