スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NSBezierPathについて。メモ。

AppKitらへんのメモ。

です。

【NSBezierPathについて】
NSBezierPathとは。何だろう。このNSBezierPathとは。これは、角を削った、つまり丸い長方形を作る事の出来るオブジェクトです。ていうか、ベジエ曲線が扱えるわけなんですね。例えば、
NSPoint point;
int x,y;
//rect,x,yの設定...


NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:point xRadius:x yRadius:y];

とすることで、便利な事に、角が丸い長方形が作れるはず。っていうか、とりあえず、NSBezierPathを使えばいいと覚えとけばいいはず。実は、まだNSBezierPath使ってコード書いてないんでちゃんとした事が言えないんです。ハイ。。。

これから、とりかかろうとしてる真っ最中でして。んで、そんな事は、置いておいて bezierPathWithRoundedRect: xRadiuis: yRadius:メソッドの説明を少ししようかなと思っています。

まぁ説明する時は上の3つの変数point,x,yをつかうんで、一応よろしく。

point・・NSPointという構造体の変数。中身は、上の変数とは関係は無いが、x,yが存在していて、x,yは、なんというか、そのオブジェクトが存在しているviewのどこに貼付けるかという座標を表しているんですが、ね。

xとy・・・長方形の角の丸みの部分の丸みを決定する部分です。この値が大きい程、カーブが滑らかになります。

うーん。説明が下手という事は、まだそんなに理解が出来ていないという事ですね。

まぁ備忘録ですから。ハイ。

@説明終了

まぁ今回は一つだけでいいや

スポンサーサイト

macプログラミングのための本。っというか、僕が勉強に使った書籍

思えば、macプログラミングの本を本格的に読み始めたのは昨年の12月でした。っで、それまでは、なんかとりあえず、firefoxの右上の検索窓に向かってObjective-Cっと検索かけてみたり、Objective-Cのスペル間違ってたりしました。が、なんか、備忘録みたいなの作っとくといいのかなっと思って、立ち上げたブログがコレですね。

で、最初に読んだ本が。コレ。荻原 剛志さん著の『詳解Objective-C2.0』です。が驚きだったのが、買った直後に改訂版が出た事。がちでorzって感じだったのは置いておき、それ以上に高かったというのが。
http://www.sbcr.jp/products/4797346800.html?sku=4797346800
『詳解Objective-C 2.0』(現在改訂版がありますって上に書いた)
荻原 剛志 著
978-4-7973-4680-0
B5変/1色
560
4410円 (税込)
2008/05/28

とりあえずコピペしてみました。コレは、僕のObjective-Cの知識のほぼすべてをまかなっている本です。っというより、コレを買わなければiphoneないし、Macのプログラミングは始まらないんじゃないかなって思います。とりあえず、高いけど目指すなら買わなきゃいけないバイブル本です。ちなみに、この本の最初にも書いてありますけど、これを読んでも、良いGUIアプリが作れるようになるわけではなく、とにかくObjective-Cを「詳解」に理解する事のできる本です。

で、次が、GUIのテクニックを学んだ本が『Mac OS X Cocoaプログラミング 第3版』です。ちなみに、「たのしいCocoaプログラミング」という本もいいみたいです。が、僕が買ったのは↑です。
http://www.pej-hed.jp/washo/2854.html
著:アーロン・ヒレガス(Aaron Hillegass)
 訳:村上雅章
 刊行:2009年11月
 ページ数:460
 税込価格:4,410円
 ISBN10:4894714469
 ISBN13:9784894714465

です。はい。俗にいう「ヒレガス本」ですね。ヒレガスさんが書いたから「ヒレガス本」です。

まぁまずこの本を読めば幅広くGUIの基礎を勉強できるのではないかなと思いますハイ。

ただ、やはり英語が読めない人間にとって、「appleのクラスを読めば~」っていうのはきついですけどね。
まぁしょうがないことは、しょうがないんですけどね。特に詳解Objective-C2.0は最後の方がかなり「appleのクラスリファレンスを(ry」っていうような内容が多かった気がしなくもないんですが、まあそうするとperlのラクダ本みたいになっちゃうのかもしれないですね。

Cocoaバインディング使ってみた後の感想。

cocoaバインディングってほんとすごいですね。

ほんとすごいです。

それを簡単につなぐ事(所謂グルーコードとか言うコード)をせずにできるinterface builderも最近すごいって事を多少理解しました

最初はやけに、扱いにくかったんですけどね。(英語だし)

まぁ、ただ、動的な画面を作るにはどうすればいいのかは分からないんですけどね。まだ。

そういう時は、コードでかかなきゃいけないんだと思うんですけど(よくは分からない)、まぁとりあえず、初心者は一つ多少使えるアプリケーションを作るに限ると思いましたね。ハイ。

NSTableViewとNSArrayControllerの二つで簡単に表示する事ができますし。

っと、ただ単に感想を書いておくだけ...↑程度の事なら、書いてあるページどこにもありますしね

って書いちゃうと、今まで書いてきた事すべてがそうなのではあるが。。。

まぁ所謂このブログも備忘録みたいな物なんで、はい。

後で見返す為に、Cocoaバインディングのすごさを知ったまだ純粋な心のうちに、感想をかいてみただけです。

ハイ。

ではここらで。

バインディングしている変数を変更する時の注意

dmdm

ちょっと今回は記事というより、備忘録ですね。

あ、でも前回書いた記事の発展みたいなものですね。前回はプロパティについて書きました(前回)。で、GUIであるアプリケーションでは(っていうか、CUIでもそうですが)、よく使うCocoaの機能として、Cocoaバインディングというものがあります。このCocoaバインディングとは、「通知」という機能を発展させたものでオブジェクト間の変数の同期を行なう事ができます。で、なにが、前回の発展なのかというと、この仕組みにプロパティが利用されるからです。

ですが、今回は上に書いた通り備忘録なので、たいした事は書きません。とりあえず、初心者によくあるミスです。
それは、プロパティ(セッタメソッド)を利用した変数の変更と、直接変数を変更するのを混ぜてしまう事です。っていうか、これからは、あんまり直接変数を変更するのは良くないという事がわかりました。何がだめだったのかというと、Cocoaバインディングは、プロパティによって、変更された時、同期するため、直接変更された場合、気づいてくれないのです。したがって、さっきまでずっと悩んでたんです。ハイ。

さっきっていうか1日悩んでましたね。機能の午後と合わせて

って感じです。

備忘録でした

プロパティ

どうも

プロパティについて。書きたいと思います。プロパティとは、ざっくり言えばなんていうか、今まで使ってきたアクセサと、セッタと同様な事と言えます。

【プロパティの宣言】
例えば、ありきたりすぎるんですが、int型のvalueと、NSStringオブジェクト型のオブジェクトnameを持っているオブジェクトがあったりするとします。すると、

@interface MyObject : NSObject
{
int value;
NSString *name;
}

@property (readwrite) int value;
@property (readwrite, copy) NSString *name;

@end

はい、こんな感じです。

この太字で書いた部分は、つまり、アクセサやセッタを宣言しているような感じになっているわけなんですね。

では()の中にあるのは何なのでしょうか?これは、プロパティとして宣言したインスタンス変数にどの程度アクセスを許すかという事になります。readwriteは、見てもわかるように、「書き込み、読み取り可能」という事を宣言しています。
copyは、「そのインスタンス変数をコピーする事ができますよ」という宣言になります。
また、プロパティには、オブジェクト(id型、その他)も宣言する事ができます。そのとき、オブジェクトが解放されないように、retainを()の中に宣言する事ができます(ガーベジコレクションを使わなかったとき)。また、ガーベジコレクションを使った時にはassign(xcodeの補完機能でいつも入力しているため、スペルが間違ってるかもです)を宣言できます。
などなど、とにかく()の中には、他のオブジェクトからアクセスされるとき、どの程度まで許すかを設定します。

【プロパティを利用する】
@interfaceで宣言しても、@implementation内で使えなければ意味がありません。そこで、その変数を利用しますよという宣言になるのが、コンパイラ指示子「@synthesize」です。あ、コンパイラ指示子は@とかではじまるコンパイラへのメッセージみたいなのの言い方です。宣言の仕方は、
@synthesize value;
@synthesize name;
という感じです。簡単ですね。
こうするだけで、そのインスタンス変数を利用する事が出来ます。

【ドットアクセス】
このように宣言すると、C++などではよくある「ドットアクセス」を利用できます。ただ僕としてはなんかあんまり使いません(というより、なんか使うといつもコンパイラに文句を言われるので...汗。ちょっとまだ使い方に困っています..)。が、一応。
上のオブジェクトのvalue変数にアクセスするには、
MyObject *myObject;
int a = myObject.value;
のような感じでいけます(はず)。あ、ただ、id型ではできないのに注意を!できないんです。ハイ。

C++から来た人は分かりやすい書き方のはずです。

こんな感じですかね。

そうそう。プロパティ宣言したインスタンス変数は、アクセサ、セッタを作ったようなものなので、当然、
MyObject *myObject;
int a = [myObject value];
というように使えます。

この自動的に作られる、アクセサ、セッタの名前は
アクセサ・・・「変数名」
セッタ・・・・「set」+「最初を大文字にした変数名」
という感じです。あ、当然かぎ括弧は入んないですよ!!

つまり、もし、アプリを作っていてアクセサが作動したログとかをコンソールに書き出したい場合には、この名前のメソッドを作れば、そっちが実行されます。(はず)

まぁやってみれば分かります。

ではこれで

csvファイルを読み込む

ちょっとしたメモ代わりに。
えっと、諸事情により、excelなどの表計算ソフトの形にファイルを出力しなければいけない状態になったわけなんですね。まぁそこで調べてみました。
http://simd.jugem.jp/?eid=52
ここに色々(僕の分かる言葉(C言語)で書かれていました。んでここを多く参考にしました。

まさか、「,」で次の枠に行くとは思わなかった。
改行は「\n」で行けます。

あと、scanfには「~を含まない、~を読み込む」という事が出来たんですね。
%[^,]とするとコンマを含まなくさせてくれる見たいです。

まぁこの辺で

xcodeで簡単にPHPをプログラミングできるようにxcodeにテンプレートを追加しよう!

どうもお久しぶりです。

今日はあのとてもこのブログの題名とはかけ離れた事なんですが、なんでも「xcodeで簡単にPHPをプログラミングできるようにxcodeにテンプレートを追加しよう!」との事なんで、追加したいと思います。

なんか、それらしいページが見つからないんで苦労したんですが(検索能力が低いのかもしれない)、まぁしょうがないから力づくでやってしまえって事で、力づくでテンプレートを追加する事にしました。

というのも、xcodeには元々入っているテンプレートというすばらしい見本がありますから、今回は、ほとんどその未本通りに作った、というか、ほとんどパクっただけで、自分で作った部分ゼロというテンプレートですが、読みたい人は読んでいただけるとありがたいですね。まぁもっと効率てきなやり方があるかもしれませんけど、今回は備忘録がてらこんな感じでやりました的なですかね。


@説明開始
【xcodeにPHPのテンプレートを追加する】
そもそも、PHPをxcodeで編集する人自体が珍しいと思うんですが、なんか、本のスクリーンショットとかでもテンプレートがずらーーーって並んでるスクリーンショットとかがあってかっこいいという意味も含めて、作りたいと思います。つまり
PHP以外の言語でも同様に行なえる
ということです。まずそのテンプレートファイルのありかを探してみたところ(これは検索しましたが、元URLは無くしました)、/Developer/Library/Xcode/File Templates/  のなかにたくさんあるんです。んで、そこにとりあえず「PHP」というフォルダを作成しました。
その後ですね、見本となるCのテンプレートを見てみたところC File.pbfiletemplateという名のファイルがついているフォルダがあったんで僕も素直にCの部分をPHPに変えたフォルダをつくます。
さらに、Cの中を進んでいくとプログラムが落ちてるんです。「file.c」という名の!(「file.h」もありました)
そこで拡張子をphpに変えたプログラムを作成し、中身をコピー後を加えました。
この作業はとりあえずテンプレートにどんな内容を加えるかという作業なのでほかの言語ならほかの内容を加えて大丈夫のはず。
そして、Cのテンプレートにはplistファイルというのが存在したのでそれもコピー&ペースト!そして、Cの部分をPHPに変えて完成。っと、違った。.hがいらないなぁーと思いつつも消すとファイルが作れないとxcodeにいわれてしまうのでそこは試行錯誤中

とりあえずplistファイルはcをphpに変えるだけでいいはず。

これで保存すればきっと行くはず!

まとめると。
1.作りたい言語のフォルダを/Developer/Library/Xcode/File Templates/に作成。このフォルダの名前がテンプ レート名になる。
2.その中にC File.pbfiletemplateのCの部分を作りたい言語の名前に変えたフォルダを作成
3.その中にfile.cという名前の拡張子の部分を作りたい言語の拡張子に変えたファイルを作成。これがテンプレート本体となる
4.完成。xcode再起動して見てみよう!(しなくてもいけるかどうかは知らない)

@説明終了

うん。まぁきっとこんな感じでいけるはず。

備忘録でした。
プロフィール

小さなプログラマ

Author:小さなプログラマ
小さなプログラマです。

これはあくまで、「勉強ログ」なので間違っている場合が多々あります。

なので、このブログに書いてあることは、8%くらいの信じ度でお願いします。

間違っているじゃないか!と言われてもあれなので。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
メールフォーム

名前:
メール:
件名:
本文:

カテゴリ
カウンター
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。