ミームの死骸を待ちながら

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators. We, alone on earth, can rebel against the tyranny of the selfish replicators. - Richard Dawkins "Selfish Gene"

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators.
We, alone on earth, can rebel against the tyranny of the selfish replicators.
- Richard Dawkins "Selfish Gene"

第一回開発合宿、RubyCocoaメモ(1)

最初は

RubyCocoa 入門
ここのチュートリアルを終わらせることを目標に。

僕のXCodeは古いらしく、細かな部分で躓く。
最新 RubyCocoaにupdate…。
XCodeがバージョンupできない (通信速度的に)。

なので

バージョンの古いこちらで練習した方がスムースかと思い、移った。
404 Not Found



Cocoa基本


アウトレットは Cocoa 用語で、他のオブジェクトへの参照を意味しています。 つまり、ここではコントローラからウィンドウへの参照を追加したということになります。

RubyCocoa 入門

これで、新規オブジェクトのインスペクタ(Apple+Shift+I)のClassから"AppControllerが"選べるようになる

.nib?

→InterfaceBuilder に関連付けされてる


階層の操作

Main MenuのClassesタブで右クリックしていけばある程度の操作が可能。


"CalcCntl"クラスをインスタンス化(ClassesメニューのInstantiateを実行)

404 Not Found


これをやると、右クリックで作っただけのClassが青い箱として登場する
Cntl押しながらドラッグでつなぐ。下のconnectボタンを押さない繋がらない。
繋がったらDestinationの欄に表示される。


def calc (sender = nil)
		ans = eval input_value = @field.stringValue.to_s
		@field.setStringValue (input_value + " = " + ans.to_s)
	end

3行目は右から読んでゆくとわかりやすいかな。フィールド内に入ったものを stringValue として取り出し、そいつを式として評価(eval)した結果を "ans" に代入します。Rubyはこうやって代入文を続けて書けるんです。

404 Not Found

ちょっとした疑問

ans = eval input_value = @field.stringValue.to_s

を書き換えられないか?



(追記)あどばいす


横に座ってたid:faultierからちょこっと教えてもらった。
上の書き方は不自然 (書いた人もRubyに不慣れ、と言ってる) らしい。
eval使うなら

"#{@field.stringValue} = #{eval(@field.stringValue)}"

これで一発。
evalで評価してるだけだから他のコードには応用できない、とも。
色々周囲から教えてもらってます。会話に使われる単語自体が難しい><。


バカでも教えてくれるってのはいいですね。
教えて君になったらあかんけどね。