jump to navigation

寒いときに 2009/11/22

Posted by digijun in Uncategorized.
add a comment

今日は寒かった。太陽があたってるうちはいいが、日陰と太陽が落ちてからは結構寒い。

そんな中、火鍋を食べてうちにかえってきてMacBookProを起動してメール確認したら、、、つ、冷たい!!
あたりまえなんだけど、冷たいのは辛いです。簡単なメール作業なら暖まったころには処理おわるし、なんだかMacに熱持っていかれて損した気分。

今日はそんなこと言ってないで、あたたかいうちに寝ます。

新しいMac購入 2009/11/21

Posted by digijun in Uncategorized.
add a comment

半年間悩んだ挙げ句に、やっと新しいMacを買った。

今まで使っていたのは、初代IntelのMacMini(CoreDuo)。メモリーを4GBにしたのもあって、すごく早い。64bit起動したら、余計に早い。

んー、気持ちいいですねー。

はて、買ったMacで色々と生産せねば買った意味がないですね。

地道に生産していきますとも。

Cocoa touchのメモリー管理にかんして 2009/08/14

Posted by digijun in Uncategorized.
add a comment

アプリケーションをつくってみたが、いまいちしっくり動かない。たまたま詳しいやつと話していて、メモリー管理に関して自分できちんと理解できてない点があることがわかったので、早速勉強。メモ。

Autoreleaseを使うことでスコープを外れてもそのオブジェクトが使える。戻り値などでretaincountを増やさなくても大丈夫。
プラスで始まる関数の戻り値もautoreleaseに対応しているので、リリースせずに使える。

SVN備忘録 2009/07/13

Posted by digijun in Uncategorized.
add a comment

SVNサーバーでソース管理をしようと2回くらい試して断念していたので、今度こそと思い、本格勉強。

ProjectのRepositoryを作成するとき:

適当なフォルダにtrunk、tags、branchesを作成する。

trunkの中に入れたいソースコードを入れる(プロジェクトが書き出すbuildフォルダは削除しておく。)

svn import (trunk, tags, branchesがあるフォルダパス) (svnへのパス+プロジェクト名) -m (メッセージ)

svn checkout (svnへのパス+プロジェクト名)(ローカルに保存したいファイル名(パスではない))

これで一応複数プロジェクトでも動いているけど、リビジョン管理がどうも変なのが気になる。(片方しかやってないのに、もう一方の数字も増える、、、)

はてさて。

サイクリングとAppleStore 2009/06/10

Posted by digijun in Uncategorized.
add a comment

今日はわけあって、朝から自転車で品川へ。

用事を終わらせてから、自転車に乗りたい気分だったのでそのまま銀座のAppleStoreと有楽町ビックへ。

AppleStoreでは早速新しい13インチのMacBookProを触ってみる。んー、欲しい。欲しすぎる。13インチもバッテリー内蔵型になったことを確認。これで、色々とHDDなど交換しにくくなったわけで、、、。

CoreDuoと比べて比べ物にならないほど早い。今のMacMiniが1.6GHzだから、2.57GHzのCore2Duoは倍速を通り越してるんだよなー。

もう買っちゃってもいい気もするけど、今日もまた我慢。ってか、MacBookAirが安くなって、すごく気になるぞー。Appleの人にもメインマシンには使わない方がいいと言われたが、それにしても、気になる、、、。

有楽町ビックでは、高速USBFlashドライブを購入。ついでに、380円で金ノコを売っていたので、自転車のハンドル切断用に購入。

家に着いたら3時。ちょっと時間使いすぎたなー。

これからパスタでも作って食べてるかな、、。

のんびりな数日 2009/06/05

Posted by digijun in Uncategorized.
add a comment

ここ4日くらいは、かなりのんびりと生活。

特にガリガリコードを書くわけでもなく、1Q84を買ってきて読破してみたり、インテリアデザインの展示会に行ってきたり、夜更かしして映画みてみたり、のんびり。

こういう生活も悪くないけど、どこかしら自分の効率の悪さを直したいとも思いつつ。

また気合い入れてコード書いてきます。

凹んだーぁ 2009/05/23

Posted by digijun in Uncategorized.
add a comment

今作っているアプリでテキストデータを読み込みたいと思って、悩むこと10時間ばかり。

以下、経過。(恥をさらして、誰かのためになればと)

最初に知っていたこと:

普通にアプリを起動した再に、アプリのSandBox(仕切り)の中にはDocuments、Library、tmpの3つのフォルダが作成される。

画像などのファイルはそこに保存されず、[UIImage imageNamed:*****]などで取得できる。

DBを作ってみたときに、Documents以下にDBファイルが作成された。

 

さて、この情報を使って、テキストファイルがなぜDocumentsの下に保存されてないのかひたすら悩んだ、、、本当に悩んだ、、、絶対に保存されているはずだと思って、(開発者のやってはいけない)システムや開発環境を疑ってみる。でも、全く答えが出ない。

それから色々調べてわかったこと:

以前DBを作ったときには普通に開発環境にDrag&Dropして含めたら、きちんとDocumentsの下にファイルのコピーができていた。

ビルドの中がスクリプトで動いていて、先ほど足したテキストファイルはきちんとコピー対象になっている。

対象になっているのだから、どこかには保存されているはず。

 

んで、最終的に:

画像を読み込むときにはDocumentsフォルダへのパスを作ってあげなくても読み込むことができた。

じゃ、テキストはどこかにいるけど、Documentsフォルダでないだけでは?

ってことは、画像を読み込むのと同じようにファイル名だけで呼び出してみたら? 結果、駄目。

そこで、昔DBを作ったときに何気なくコピーしていたCreateEditableCopyOfDatabaseIfNeededという関数を思い出して眺めてみる。

ふむふむ、、、最近みていないNSBundleとかいうのが出てきている。

ふむふむ、、、Documentsフォルダにない場合はここからコピーしている?

ふむふむ、、、、、死

というわけで、元々のパスは[[NSBundle mainBundle] resourcePath]であり、そこにファイル名を追加することでファイルが取得できるというわけでした。

多分、ここのを直接いじらずにDocuments内でいじるのは、元々のをいじると取り返しのつかないことになるから。

 

そういえば、6時間くらい前にNSBundleが怪しいと思ってAPIドキュメントを見ていたっけ、、、、とほほ。

というわけで、勉強にはなったけど、2時間くらいで解決したい問題だったなー。

すごく損した気分です。でも、勉強にはなったからいいとするか、、、、、。ふーぅ。

自動削除 2009/05/13

Posted by digijun in Uncategorized.
add a comment

デバッグにあまり時間使わなかったからいいようなものの、またやりそうで怖い。ので、備忘録。

NSMutableString* temp = [NSMutableString stringWithString:@""];

は自動的にインスタンスが削除されるので、

NSMutableString* temp = [[NSMutableString alloc] initWithString:@”"];

を使うべし。

setで大失敗 2009/05/13

Posted by digijun in Uncategorized.
add a comment

最近ひたすらCocoa Touchでコードを書いているが、色々と分かってない部分もあり、大変。

今日のミス。これは見つけるのに1時間くらいかかってしまった。

あるクラスにおいて、変数opponentを作成。それ以外にも色々と設定したかったので、setOpponentという関数を作成して、それを呼ぼうとしたところ、アプリが起動しない、、、。

エラーの詳細はNSInvalidArgumentException [UILabel intValue] unrecognized selector sent to instance.

はて、何を言っているのか全然わからない。でも、コード変更した前は動いていたからと少しずつ加工していく。エラーが出なくなるのはsetOpponentの関数をクラスから削除したとき、、、。

(分かる人は既にどんなぽかミスかわかってますね、、、はい。)

 

第一に思ったのは、「呼んでない関数をつけたり消したりするとこけるのはおかしい。」その次に思ったのは「その関数を作成したことで、関数をコールしたところでこけるのではなく、アプリ実行時にこけるのは直接コードの問題じゃなくもっと深い」。

んで、悩んで、InterfaceBuilderのいらないところをいじって、ふと思ってみた。

そいえば、変数あるときって、変数名の頭にsetつけると設定できて、変数名そのまま呼ぶと内容わかったような、、、(はい、きちんとObjective-C勉強してない証拠です)。

というわけで、setOpponentの関数の中身はすべて同じにして、prepareOpponentにしたらさっくり動きました。

 

Objective-Cのフレームワークにまだ何となく翻弄されている感がとれない今日このごろです。

それでも、着実に進歩しているから、よしとするか。

ちなみに 2009/05/11

Posted by digijun in Uncategorized.
add a comment

次のマシンはMacBook(Core2Duoの2.4GHzのほう)にしようかと。

んで、買ったら速攻HDDを500GBにしようかと。

んで、50GBくらい切り取ってWindows7を入れて、開発用に使おうかと、、、。orz

(だって、使いにくくてすぐ消え行くVistaに3万も払ってられません。今は。)

EMobileつけちゃいたいんだよなー、、、金ないなー、、、。

そのときはネットブックでも買おう。orz