Posts categorized "Cocoa Sunday"

December 16, 2009

xcodeなんでここなの?

iPhoneのサンプルコードを手にいれたのでコンパイルして実行したかったのですが、SDKのバージョンが違うエラーメッセージが。

xcodeの3.2からインストールしたのでSDKが3.0しかないのが問題のようです。
で、インストールの方法をしらべていると、こんなページを発見
この方が発見したインストールしたSDKを移動させる方法でSDKのインストールはうまくいきました。

でも、なんで標準の位置にインストールされないでしょうかね?追加だから?

| | Comments (0) | TrackBack (0)

December 12, 2009

Objective-Cにもenumってあったのね

Objecitve-Cでもenumが使えたんですね。
例えば
enum card {DAIAMOND,HEART,SPADE,CLUBS };
enum card cardStatus;
って定義しておくと
cardStatus = DIAMOND;
みたいな書き方でわかりやすく使える訳です。

おそらく便利なんでしょうね


| | Comments (0) | TrackBack (0)

December 08, 2009

iPhone タッチイベント

iPhoneで使うタッチイベントって4つあります。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Touch"); }

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Moved"); }

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Ended"); }

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Cancelled"); }

この4つを検出すればタッチイベントは大丈夫ですね。
あれ、でもドラッグってどうするんだろ?


| | Comments (0) | TrackBack (0)

December 07, 2009

Cocoaの配列

CocoaでつかうObjective-Cは配列が面倒(CやJavaなどと書き方がかなり違うという点で)です。
配列には2種類クラスが用意されていて、配列のサイズを変更出来るタイプとできないタイプ。
今回調べたのはサイズを変更できないタイプ。

まず、文字列をつかって初期化から。
NSArray* array = [NSArray arrayWithObjects:@"Sapporo",@"Asahi",@"Kirin",@"Suntry",nil];

で、配列の数を調べるのは以下のファンクション
NSLog(@"count = %d",[array count]);

一番引っかかったのが文字列の表示のしかた。
NSLog(@"Maker = %@",[array objectAtIndex:1]);

C言語だったりすると%sで文字列だったとおもうのですが、Objective-Cだと%@。

ま、書式だってCなどとは違うんだから、いいかって感じですね。

| | Comments (0) | TrackBack (0)

November 29, 2009

xcode:ヘッダー/ソースファイルの切り替えショートカット

xcodeの便利なショートカットに「ヘッダ/ソースファイルの切り替えショートカット」があります。
xcodeはヘッダーファイルとクラスファイルが対になっているので、その切り替えってかなり頻繁に必要になります。

で、そのためのショートカットは OPT + COMMAND + 上矢印です。

使えますよ。

| | Comments (0) | TrackBack (0)

November 25, 2009

xcodeってアップデートのお知らせは無し?

iPhone SDKプログラミング大全ゲームプログラミングをつかってお勉強をしております。
しかし、どうしてもうまく動作しません。
で、サンプルをダウンロードして動作チェックしてみることにしました。

しかし、動きません。というかエラーが発生。
エラー内容をしらべてみるとどうもシミュレータのバージョンが古いみたい。
サンプルは3.1。こちらは3.0。

早速アップルのサイトへいってxcodeともども落としてきました。

xcodeも3.2.2。シミュレータは3.1.2まで対応してました。

結果サンプルは見事動作。

xcodeってアップデートのお知らせってこないんですね。

| | Comments (0) | TrackBack (0)

November 23, 2009

xcode エラーにはまりました

xcodeでiPhoneのプログラムを勉強しておりますが、どうしても原因がわからないエラーに遭遇しました。

rect = CGRectMake(
PANELWIDTH * (i % 3) + PANELLEFTSPACE,
PANELHEIGHT * (i % 3) + PANELUPSPACE,
PANELWIDTH,
PANELHEIGHT);

の2行目のところで以下のようなエラー
'PANELWIDHT' undeclared (first use in this function)
これは別のヘッダーファイルでちゃんと定義してあります。目を皿のようにしてみてもわかりません。

で、ピーン。これって直接PANELWIDTHを間違えている訳ではなく、PANELLEFTSPACEないで使っているPANELWIDTHを間違えていたわけですね。

そういう事もあるんですねぇ。


| | Comments (0) | TrackBack (0)

iPhone SDK 3 プログラミング大全 ゲームプログラミング 第5章

第4章のノベルウェアの章はなんとか読み解き、第5章「フリックで操作する8パズル」に挑戦です。
クラスを調べる時はクラスの上でOPTIONを押し、ダブルクリック。

サンプルにもアクセスできるし、xcodeよくできてます。

| | Comments (0) | TrackBack (0)

November 14, 2009

QuartzCoreでトランジション

iPhone用のプログラムを勉強してます。

「iPhone SDK3 プログラミング大全 ゲーム プログラミング」のアドベンチャーゲームです。
この章で、QuartzCoreのFrameworkを使ったトランジションがありました。
この部分だけを切り出してトランジションの効果を調べるプログラムに修正してみました。

よく読み、ちゃんと作ったと思ったのですが、全然トランジションがかかりません。
2枚の絵BGを配置し、ボタンで切り替わるようにし、その切り替わりの時にトランジションがかかるはず、だったのに、切り替わるだけで効果はありません。

本を見直し、ネットで調べ、手元の別の本も調べたのですがわかりません。どこか、なにか別の設定をしなくてはいけないのか?とかおもったのですが、それらしい記述はありません。

そのときふと思ったのはoutletの接続ができてないのでは?

InterfaceBuilderをみてみると接続を忘れてました。
この接続を正しくする事で、ちゃんとトランジションは実行されました。

でもね、トランジションをいろいろかえても効果の違いがわからないんですよ。まだ、なにかあるのかなぁ。

| | Comments (0) | TrackBack (0)

November 08, 2009

Cocoa:@property と @synthesize

Objective-c 2.0から採用された宣言プロパティという機能があります。
どんなものかといいますと
値を設定したり、値を取得するのにいちいちメソッドを用意しなくてもすむ仕組みです。

使い方は至って簡単
.h に
@property (readonly) NSString *name;
みたいに書いて、
.mに
@synthesize name; と記述

ドット演算子をつかってアクセスできます。

この機能をつかえば、手間は省けそうすよね。
Optionが今一つわかり憎いですけどね

| | Comments (0) | TrackBack (0)