ntmukaiの日記

飽きっぽいプログラマーの日記。ほんと飽きるのだけは得意。おもにポエムを書いています。

Xcode2日目、AppDelegate.swiftを読む

AppDelegate.swiftに書かれている@NSApplicationMainは、そのファイルにmain()を自動実装するための記述らしい。つまりこのクラスから実行されるって考えていいぽい。

weakという修飾子についてなんとなく調べた。弱参照というらしい。なるほど、ほぼ分からない。qiita.com

SKViewはSpriteKitのビューらしい。SpriteKitだからSK。

最初に展開されるコードの中で、下記が最初よく分からなかった。スーパークラスSKNodeのイニシャライザであるinit(fileNamed:)を呼んでるぽい。ここではGameScene.sksってファイルを読み込んでいる。

let scene = GameScene(fileNamed:"GameScene")

にしても、SpriteKitの公式リファレンスって、iOSOSXで別れてたり、その中でもSwiftObjective-Cで別れてたりでドキュメント構造を理解するのにすごく苦労した。すぐ慣れるのかもしれない。

関係ないけれど、Chromeのブックマークバーって、編集して名前を消せばファビコンだけの表示にできると知った。

Xcode7をインストールした

SpriteKitが2Dゲーム用で、SceneKitが3Dゲーム用らしい。

2Dの方が楽そうだしSpriteKitで作っていこう。

さらに Swift やってみた

初歩の初歩を理解できたので、続きをチャレンジしてみる。前回参照したブログに続編があったので、それを勉強してみる。

▼参考にしたブログ
Swift(iOSアプリ開発プログラミング言語)日本語チュートリアル ~ 後編(Apple公式ドキュメントSwift Tour±α) - こんにゃくマガジン

うーん、なんというか、最初の「クラスの定義」からあんまり前に進めず。Playground を使って検証しながら進むことにした。(。・_・。)

var discountRate: Int? = 0

まず、ここに ? つける意味がよく分からなかった。オプショナルにする必要あるのだろうか?(たぶんなさそうなのでスルー)

discountRate = 5

なるほど、自明なときは self を省けるのね。Objective-C もそうだったっけ。( ・`ω・´)

override func description() -> String {
    return "Pizza \(name) is discounted \(memberDiscountRate)%"
}

ここもエラーになってつまずく。あ、スーパークラスにないメソッドを override するとコンパイルエラーになることの説明なのかな。あと memberDiscountRate も、どこかから湧いてるくる変数かと思って Playground で走らせるまでワクテカしたけど、結局エラーになった。

うーん、なかなか学びが多いコードで楽しい!(*´ω`*)

Swift やってみた

なんというか個人的に「くる!」と思っている Swift のメジャーバージョンが 1 に上がったとのことで、さっそく入門してみる。

ずっと前に勉強した Objective-C とか Cocoa の知識が多少は蘇ってくれるか!と期待したら、ぜんぜんダメだった。XcodeGUI にもほんのちょっとは慣れてたはずなのにな〜。

そんなこんなで、今日は最も初歩的で分かりやすそうなブログを見ながら、その通りにやってみた。

▼参考にしたブログ
プログラミング言語Swift日本語チュートリアル ~ 前編(Apple公式ドキュメントSwift Tour±α) - こんにゃくマガジン

で、出来上がったものがコレ。(・∀・)

f:id:ntmukai:20140911221924p:plain

でも(?)ちゃんと動いてきもちいいな〜。

・・真ん中に配置したオブジェクトがえらい右にいってしまうのはなんでだろうな。(。・_・。)

さくらVPS(CentOS5)でウェブ開発をしている時によく使う「find&grep」コマンド

例えば「redirect」という関数をライブラリに宣言していたとして、

ある事情で関数名を「redirect_internal」に置き換える必要があるとする。

そんな時に使えるのが以下のコマンド。

 

$ find /home/user/public_html/ -type f -print | xargs grep 'redirect' /dev/null

 

指定したユーザーディレクトリ以下のファイル内から、

指定した「redirect」が含まれる行をすべて表示してくれる。

 

ちなみにこれだと肝心の関数呼び出し部分の変更はすべて手作業になるが、

機械的に一気に置き換えてしまうのもなんだか心配なのでこの方法が好き。