Day: January 14, 2014

obj.C:わからないことの整理

問題を整理しきれていないから課題にまでブレイクダウンできないし、攻め方が見えてこない。

そういう訳で少しばかり問題を整理することにしました。

1. 何がわかっていないか?どこに違いがあるかわかっていない。

  • 目下使っているXcode 5.0.2と「Cocoaでいこう」の説明にあるMac OS X Developer Tools(2002年12月)/Project Builder(PB)では開発環境が違い過ぎる。
  • Xcode 5.0.2とPBでは、どのNibファイル(window)をロードするのか名前を返す箇所にソースコードに違いがある。
    – (NSString *)windowNibName //Xcode 5.0.2
    – (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)aType//PB
  • Xcode 5.0.2では、最後に+ (BOOL)autosavesInPlaceがある。これはどれと対応するのだろう?見落としている可能性がある。

2. 問題は何か?

  • どのNibファイル(window)を読み込むかの指定が正しくできていない。
    ①イメージの表示は[imageView setImage:image];で行うようだが、imageにセットできていない。
    ②image = [ [ NSImage alloc] initWithData:data];でNibファイル名をセットしているようだが、この命令を- (NSString *)windowNibName //Xcode 5.0.2の中に埋め込む方法がわかっていない。
    ③また、返り値をreturn ( image != nil)?( YES):( NO);セットできていない。
  • Document.xibで読み込めるファイルをjpgとpngにしたが、これがコードと対応できていない。もしくは、そうする必要があるかどうかわかっていない。
  • 現時点では開くファイルは固定で”Document”になっている。では、このDodumentというファイル名はどこに存在しているのか?それがわかれば、何かのヒントにつながるかもしれない。

3. 戦略

  • 新旧の環境の違いによる生成コードの違いを再チェックする。特に(BOOL)。
  • Nibファイル名をセットの仕方、返り値、イメージファイルの表示の3点について調べる。
  • 以上がわからない場合、どの道、Document-based Applicationについてわかっていないのだから、周辺から調べていく。いくつか参考になりそうなものにはたどり着けているので、これらを利用する。

obj.C:幼稚園生に大学入試問題か

2004年頃に書かれたCocoaでいこう! Macらしくにチャレンジしているのですが、幼稚園生に大学入試問題と言った感じでさっぱり前に進みません。

Cocoaでいこう! Macらしくの第7回までは力づくで来たのですが、10年前とはXcodeの環境が違うのとサンプルコードが対応していないので苦労しています。

USDJPYと同じでノックアウト寸前です。USDJPYは103円割れをためしたあと、米国株価を読みながら動いています。105円から2円動いたので買い戻していますが、103.40-103.50円では深追いしないで様子を見た方がいいかもしれません。そう言いながらいつも様子を見ていて腰が据わらなくなるのは、問題です。

さて、もう少しやってみてほかにいいものが見あたらない場合、iOSを検討した方がいいのでしょうね。トレンドはiOSで、説明も多いし、最新の情報が多いからです。give upはちょっと惜しくて残念なのですが、拘泥しても仕方ありません。

参考:Cocoaでいこう! Macらしく

プロジェクトを定義してbuildするとすぐにwindowが立ち上がります。

スクリーンショット 2014-01-14 00.04.25Windowsはどこで変更できるの?最初からつまづき。

スクリーンショット 2014-01-14 00.04.46

Xcodeが古過ぎて最新版とは違い過ぎる。でも、あちこち触っていたらなんとなくわかって来ました。これを塞翁が馬と言うのでしょう。

スクリーンショット 2014-01-14 00.05.06

window枠の収縮に合わせて図形枠を収縮する方法がわかりました。
参考:AutosizingをONにする方法

スクリーンショット 2014-01-14 00.05.19

このあと、いよいよコードを修正することになります。その前にjpgの指定の仕方はXcodeのどこに?結局、iPhoneの説明で理解できました。
参考:タイプのセット iPhoneの場合

スクリーンショット 2014-01-14 00.06.03