投稿

2月, 2010の投稿を表示しています

Clockの応用

赤松さんの本でClockというアプリを作ってから、自分でもいろいろ時計を作ってみようと思った。
まずは16進数時計、秒分時の概念をなくして、16進数で一日を区切る。一日の概念は地球の回転に基づくのでそこは変えない。人が勝手に設定したもののみを崩す。先日見てきたIAMASの卒業展風にいうと「既存の時間の概念を変えることによって時間のありかたを見直す」
16進数で4文字表記にすると、一単位あたり1.3秒くらいになる。この微妙なズレ加減が面白いと思った。カチカチ切り替わるのが普通の時計よりもちょっと遅い。
最初に苦労したのは、取得するデータが秒よりも細かいデータで取得する必要があること。秒で取得してから16進数4文字(16ビット)に変換すると誤差が出てくる。秒の小数点以下2桁くらいまで欲しい。NSTimeIntervalで今の時間を取得して、その小数点以下を取り出すことで対応する。

iPhoneプログラミングUIKit詳解リファレンス

iPhoneプログラミングUIKit詳解リファレンス
という本を買った。
なかなか読みやすい。深く考えながら読む本ではなく、ザーとブログを読むような感じで読める。

本の印象は内容だけで決まるのではなく、内容と自分のレベルの2つの要素によって決まる。その本に自分のレベルがあってなければ、いい印象にはならない。

コンパイルエラー覚え書き(Objective-C)

((赤のほう))

Variable length array declaration can not hava 'static' storage duration
メソッド内でstaticで配列を宣言するときに要素数が変数だと出る。

incompatible types in assignment
宣言に*を付け忘れ

variable-sized object may not be initialized
宣言に*を付け忘れ

expected ';' before '}' token
;忘れ

Expected expression before '〜' token
'〜'の前がおかしい

'〜' undeclared (first use in this function)
宣言忘れ、宣言の位置がおかしい

stay '3桁の数字' in program
日本語入力モードでなにか入力した

wrong type argument to unary minus
メソッドの引数がおかしいという意味
原因はほんとにメソッドの引数がおかしい場合と、すこし上のメソッドの}の閉じカッコ忘れでエラー部分が前のメソッドの一部と認識されている場合がある。

expected specifier-qualifier-list before '****'
2つの.hが互いに#importしあったときなどにおこる。
片方を
@class ****;
に変更するとエラーが出なくなることがよくある。
@class **** は.hのインポートではなく、ソースの中に「****」というクラスが出てきますが気にしないでください、と言うニュアンス。インポートはどこかでする必要があることがほとんどと思うが、.mの先頭でしてやればよい。
設計の見直しというのも解決方法のひとつ。

Lvalue required as left operand of assignment
代入可能じゃない(?)

Initializer element is not constant
int型の変数をstaticで宣言して同時に初期化しようとしたら出た。
宣言と初期化の文を分けたらエラーは出ない。
正直、エ…

UIWindow

UIViewは表示するために表示されている親Viewに追加する。
「インスタンス作成」と「見えるところに配置」がセットです。
しかし、UIWindowはインスタンスを作っただけで表示され、それを見えるようにする処理がどこにもないように思えて、これがずっと不思議だった、が今日解決した。
makeKeyAndVisibleメソッドでやってるようだ。KeyWindowというのが表示されるウインドウのことで、KeyWindowに設定されたUIWindowが表示権を獲得するようなシステムらしい。

基本

がつがつアプリを作ってきたが、UI部品の使用法など基本的なことをもっとやってからの方が効率がいいのでそっちに重みを置く。赤松本、木下本、公式資料などで勉強する。

全体の設計図

全体の設計図が難しい。
過去の実績もない新規のアイデアを作っている人ってどうやって判断しているんだろうか。
今のところ、みちしるべがMVCの考え方しかない(それしか知らない)のでMVCを基本にしてやっている。
UMLを勉強したらいいのかもしれない。UMLの知識よりもUMLの活かしかたの方。

疑問点等

メモリ制御(alloc init dealloc autorelease)に対して非常に悩む。本が何冊かあって、いろいろ読んでいるが、読んでも読んでも疑問点が出てくる。メモリレベルでの挙動まで解説してあるといいんだが。
あと、@propertyも壁だなぁ。アサイン、コピー、リテインの違いがなかなかピンとこない。これもメモリレベルの挙動が知りたい。
デリゲートというのが「なに」から「なに」に委託するのかがいまいち掴めなかったのだが、システムからデリゲートファイルに委託するという解釈のようだ。

ラダー描写

ラダー描写をどうすればいいかさっぱりわからない
まあ、あたりまえか

手当たり次第いろいろやってみることにしよう

つまずく

アイデアが浮かんでちょっとしたことをやろうとしても、
そのちょっとしたことに行き着くまでにいろなところでつまずく。

公式の資料を読もうとしても、いちいち説明が長いし、何か作ろうとしてもすぐつまずくし、ちょっと出口の見えない状態