Xcode4.2 Interface Builder メモ1

水曜日, 1 2月 2012

UIViewControllerをInterface Builder(以下IBとする)で作る場合。
1.ファイル確保

  1. まずはNew File から。iOs→CocoaTouch→UIViewController subclass
  2. Class にクラス名を入れる。サンプルとしてTestViewControllerとする。
  3. Subclass of は UIViewControllerに。
    • 結果、以下の物ができあがる
    • TestViewController.m
    • TestViewController.h
    • TestViewController.xib

2.IBの事前処理

  • TestViewController.hを編集、TestViewを追加する

@interface TestView : UIView {

}

@end
  • TestViewController.mも編集 IBの作業対象なので、これを欠くとちゃんと動かない

@implementation TestView

- (void) dealloc {
	// ここに追加されたUIの解放処理が自動追加される。
	[super dealloc] ;
}
@end

3.IBでの処理

  1. TestViewController.xibにコンポーネントを置く。ここではUIImageViewを置いたことにする
  2. 右ペイン→Show the Identity inspector(アイコン)→Cutom Class→Class をTestView に
    • これをやらないと以降の処理が上手く動かないかも
  3. タキシードマークのアイコンを押してIBとTestViewController.hを並べて表示する
  4. 配置したUIImageViewの上でcontrolキーを押しつつドラッグをする。すると線が表示される
  5. その線をそのままTestViewController.h→TestView の定義内まで引っ張ってはなす
  6. すると項目の作成ウィンドウが表示される。そこにコントロール名を入力してConnectボタンを押す
  7. ここでは bgView と名付けたことにする
  8. TestViewController.h/mに定義と解放処理が自動追加される
@interface TestView : UIView {
	//この位置でドロップ。下の物が追加される。
	IBOutlet UIImageView *bgView ;
}

@end
@implementation TestView
- (void) dealloc {
	// こんな感じに自動追加される。
	[bgView release] ;
	[super dealloc] ;
}
@end
  • 上の例ではオブジェクトとして自動作成したが、{} の外に置けばプロバティとして作成できる
  • ニーズに合わせて選択するとよさげ

4.表示
ここまでで基本的なセットアップは完了している。
initWithNibNameメソッドを使ってやればロード処理も支障なく行えるはず。

- (void) hoge {
	// UIの生成。
	TestViewController viewCtrllr = [[TestViewController alloc]
		 initWithNibName:"TestViewController " bundle:nil] ;

	// UINavigationController を作成して
	// 親ビューのpresentModalViewControllerメソッドに入れてやれば表示もOK
	...
}

Lua 覚え書き ダイナミックスコープ

金曜日, 27 1月 2012

Lua の変数アクセスについて。

localで定義された関数を呼び出しする場合、呼び出し元で
宣言されている localな変数にアクセスできる。

ダイナミックスコープという機能らしい。
かなり特殊な動作であるものの、プログラミングスタイルによっては強力な武器となる。


-- Note. 実験場となる関数を定義。
local testCaller = function()

    -- Note. テスト用の関数。
    local testFunc = function()
        localAry.value = 5 -- Note. ちゃんとアクセス出来る。
    end

    -- Note. テストでアクセスするテーブルを定義。
    local localAry = {}
    -- Note. テスト用の関数を呼び出す。
    testFunc()

end

-- Note. 定義したのを呼び出す。
testCaller()

てすてす

火曜日, 24 1月 2012
int main(){
    return 0 ;
}

コードの表示テスト。