MacでSVN

WindowsTurtoiseSVNほど便利ではないがsvnxというツールがある。

1.3.1Snow LeopardLionで動作する模様。

 

http://code.google.com/p/svnx/

 

svnx」でググるとTopに来るこのサイトの製品は動作しなかった。

 

http://www.lachoseinteractive.net/en/community/subversion/svnx/features/

(このサイトの古いバージョンのsvnxはエラーでまともに動作しない)

 

OS10.4から更新してないようだし当たり前か・・・それがトップに来てしまうのは残念。

Posted under 未分類 by akira on 月曜日 31 10月 2011 at 9:28 PM

[xcode]switch~case 内で記述できない変数の宣言

 


switch (a)

{

case 0 :

NSDate* date = [NSDate new];

break;

}


 

特になんてことないこの記述はエラーになる。

 

error: expected expression before ‘NSDate’

 

以下のようにして対処する。

 


switch (a)

{

case 0 :

{

NSDate* date = [NSDate new];

}

break;

}


 

マクロの中で変数の宣言している場合などはわかりにくいが、エラーメッセージで判断する。

Posted under 未分類 by akira on 月曜日 21 3月 2011 at 1:57 AM

[iOS]UIViewContentModeScaleAspectFitの自動サイジングが上手くいかない


UIImageView* iview = [[UIImageView alloc] init];

// 720 x 960 のイメージ

UIImage* image = [UIImage imageNamed:@"sample.jpg"];


iview.frame = CGRectMake(0,0,320,480);

iview.image = image;

iview.contentMode = UIViewContentModeScaleAspectFit;


 
 
これだと上手くいかなくて、
 
 

iview.contentMode = UIViewContentModeScaleAspectFit;

iview.image = image;


 

これだと上手くいく。なんのことはない、image 設定する前に contentMode 設定しなさいね、ってこと。。。

①でも上手く「いっちゃう」ことはある。まぁ、xcode だし、なんとなく動いちゃって後でハマることは稀によくある^^

Posted under 未分類 by akira on 金曜日 18 3月 2011 at 4:16 PM

[iOS]実機でUIImage(ファイル)が読み込めない

 気づいてしまえばなんてことはないが、

 

Simulator

ファイルの大文字小文字を意識しない。普通に動く

 

実機

ファイルの大文字小文字を意識する。違っていると読み込めない

 

Simulator で意識してくれるのが有り難いが・・・Windows などでファイル名の適当さに慣れてしまっていたら要注意。

Posted under 未分類 by akira on 水曜日 16 3月 2011 at 10:37 PM

[iOS]NSFileManager を用いたファイル削除

 removeFileAtPath

これが使えると思ったら実は使えない。iOS ではヘッダの宣言から外されているらしい。

自分で勝手に宣言して使ってもいいのかもしれないが、別の方法があるのでそれを紹介する。

  

1
2
3
4
5
6
7
8
9
NSString* path =
	[NSString stringWithFormat:@"%@/%@",
		[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"],
		@"test.txt"
	];
NSURL *pathURL =
	[NSURL fileURLWithPath:path];
 
[[NSFileManager defaultManager] removeItemAtURL:pathURL error:nil];
Posted under 未分類 by akira on 火曜日 15 3月 2011 at 1:45 AM

[iOS]ゴミ箱に吸い込まれるトランジション効果

 トランジションには以下の4つの定数(効果)がある。

 

UIViewAnimationTransitionFlipFromLeft(左から回転)

UIViewAnimationTransitionFlipFromRight(右から回転)

UIViewAnimationTransitionCurlUp(ページめくり)

UIViewAnimationTransitionCurlDown(ページめくり)

 

が、実はこれ以外にも「ゴミ箱に吸い込まれる」トランジション効果がある。

(定数が切られていないため、正式対応とは言い難いが…iOS4.2 で確認)

  

1
2
3
4
5
6
7
8
9
10
11
12
13
 
imageView.image = [UIImage imagedName:@"Test1.jpg"];
 
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.6];
// 103 .. 吸い込まれるトランジション
[UIView setAnimationTransition:103 forView:self.view cache:NO];
// 吸い込まれる中心点
[UIView setAnimationPosition:CGPointMake(300,460)];
 
imageView.image = [UIImage imagedName:@"Test2.jpg"];
 
[UIView commitAnimations];

 

 

なお、 setAnimationPosition メソッドは実は宣言がないためワーニングになってしまう。

 このワーニングを消すには、ヘッダに以下の文を入れておく。

  

1
2
3
4
5
6
@interface UIView(IWantToGetRejected);
 
+ (void) setAnimationPosition:(CGPoint)p;
 
@end
 

 

Posted under 未分類 by akira on 火曜日 15 3月 2011 at 1:39 AM

[iOS]addView した UIView オブジェクトを後でアクセスする方法

メソッド内で宣言すると後で取得できないので、クラス内に退避用プロパティを作って・・・では面倒この上ない。

それをせずにすむ2通りの方法がある。

 


add した分だけ subviews から取得する

 

 

1
UIImageView* iview = [view.subviews objectAtIndex:0];

全部ぶん回すのは楽だが、特定のオブジェクトをアクセスしたい場合、検索まで行う必要があり面倒

 


viewWithTag を使う

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
UIImageView* iview = [[UIImageView alloc] init];
// この数値が取得時に使われる INDEX
iview.tag = 1;
[view addSubview:iview];
 
・
 
・
 
・
 
// 登録した iview を別メソッドで取得
UIImageView* iv = (UIImageView*)[view viewWithTag:1];

特定のオブジェクトを狙って取得できる。

Tag 番号は必ず 1以上 であること。 0 を使うと取得で落ちる。

番号は define や enum などで管理するといいと思う。

Posted under 未分類 by akira on 月曜日 28 2月 2011 at 10:32 PM

[iOS]ベースSDKが別のものの対処(2)


 There is no SDK with the name or path ’iphoneos3.2′


 

ネット上の誰かが公開しているプロジェクトは非常に有り難い参考例だが、ターゲットが自分の持っていない OS のものであることが多い。

コンパイル時に上記のエラーが出てしまうので、以前記事にした方法を行った。

いつもはそれで OK なのだが、今回は、それでも動かなかった。

 

以前の記事

 ベースSDKが別のものの対処

 

この記事でダメだった方は次の方法を試してほしい。

 

 

Base SDK Missing と書かれたボックスの上で Option(Alt) + クリックをする。するとこういう画面が出る。

 

 

ここでリンク先で選んだ iOS のバージョンと同じものを選ぶ。

その後1度ビルドをクリーンにし、プロジェクトを閉じる。再起動してビルドすればエラーが解消されている。

Posted under 未分類 by akira on 日曜日 27 2月 2011 at 5:12 PM

[iOS]アプリアイコン

 iPhone アプリのアイコン作成について。非常にお手軽。

 

 


アイコン設定の仕方(基本)

 

Resources フォルダ下に icon.png (サイズ 57x57px)というファイルを置く。これだけ。

 

 


 アイコン設定の仕方(応用)


Resources フォルダ下に適当な名前の png (サイズ 57x57px)ファイルを置く。

Resources 下にある ????-info.plist  Icon file 欄にファイル名を記述する。

 


アイコンの光沢を消したい

  

Resources 下にある ????-info.plist で、右の方にある「+」マークをクリック。

項目で「Icon already includes gloss effects」を選択する。

チェックをつけると光沢解除、チェックを外すと光沢が自動的に付加される(逆に思いがちなので注意)。

 

 

xcode のバージョンによっては項目名が違うらしい?(UnpredendedIcon とか)

確認した xcode のバージョンは Version 3.2.5(1760) 。

 

 


ついでにスプラッシュを表示したい

  

Resources フォルダ下に Default.png というファイルを置く。らしい。試していない(笑)

 

 

Posted under 未分類 by akira on 日曜日 13 2月 2011 at 9:12 PM

AppID を使いまわすための方法

AppID は一つのアプリケーション(プロジェクト)につき一つ必要な ID。同じ ID は別のアプリケーションでは使えない。

もし無理やり同じ ID を使うと、

 

実機に今まで同じ Bundle Identifier で入れていたアプリが消失する

中途半端に以前の情報を基にして新アプリが起動するため、実機実行で誤動作する。起動しないこともままある。

 

このような障害がおこるため、実機テストするだけでも、AppID はプロジェクトごとに必要。

でも、AppID をプロジェクトごとに作りまくるのはいやだ…いちいち iOS Provisioning Portal で作成するのも面倒だし、

第一この ID、削除することができない…。

過去に作ったサンプルの数だけ ID が増え続けるのは気持ちが悪すぎるし、名前を考えるのもいやになってくる。

 

その問題の解決策として、AppID にはワイルドカード( * )が使える。

たとえば、

 

com.akira.sampleID

 

であれば、

 

com.akira.*

 
とすることができる。

プロジェクトの Bundle Identifiercom.akira.ABC でも com.akira.Test でもいい。

(ただし他のプロジェクトと同一名にはしないこと)

Posted under 未分類 by akira on 金曜日 11 2月 2011 at 1:09 PM