UIButtonのアクション設定でハマった
Posted 2010年6月29日 | Auther ダダ | Category PC・デジタル | Tag タグ: ,

動的に複数のボタンを作っていたら、ボタンを押したとたん落ちてしまう。
そんな状態にハマりました。^^;

CGRect rect = CGRectMake(mapX, mapY, MAP_DESK_YOKO_W, MAP_DESK_YOKO_H);
UIButton *button = [[UIButton alloc]initWithFrame: rect];
[button addTarget:self action:@selector(mapButtonTouch)
	forControlEvents:UIControlEventTouchUpInside];
[button setBackgroundColor:[UIColor redColor]];
button.tag = count;

comikechk[4537:207] *** -[ComikeMapViewController mapButtonTouch]: unrecognized selector sent to instance 0×48609a0

なんだろーなんだろーと検索しても有効な情報が得られない。
ふと、作例を載せているサイトを見ていたら…あっ!!

[button addTarget:self action:@selector(mapButtonTouch:)
	forControlEvents:UIControlEventTouchUpInside];

@selectorでメソッドを指定する時に最期の「:」を付け忘れただけでした。
うわー、まぬけすぎるw

release しても nil しとけ?
Posted 2010年6月28日 | Auther ダダ | Category PC・デジタル | Tag タグ: ,

iPhoneプログラミングメモ。

処理進行中を表すために用いられるくるくる回るアニメーション
UIActivityIndicatorView が用いられますが、解放関係でハマったのでメモ。

[indicator stopAnimating];
[indicator removeFromSuperview];
[indicator release];

アニメーションをストップして、ビューから外して、解放しています。
が、このコードだと

-[UIActivityIndicatorView stopAnimating]: message sent to deallocated instance

なんてエラーになってしまいました。
releaseの後にさらに nilを代入したら問題なく動作するようになりました。

[indicator stopAnimating];
[indicator removeFromSuperview];
[indicator release];
indicator = nil;

おそらく他の部分で UIActivityIndicatorViewインスタンスの有無を
チェックして処理をわけている箇所があるので、そのへんが関係あるのかも。
ないのかも。

if( indidator ){
 〜くるくるアニメがある時の処理〜
}

あとはこのへんが多少なりとも関係しているんでしょうか?

CoreDataで日本語検索が上手くいかない
Posted 2010年6月22日 | Auther ダダ | Category PC・デジタル | Tag タグ: , , ,

はじめてのあいぱっどあぷり。
略して「はじあい」。

そんなワタクシですが無謀にもCoreDataにまで手を出しています。
で、日本語検索が出来なくてハマったのでメモ。

「day」という項目に曜日が格納されており、
それごとにデータを抽出しようとしています。
「dayList」は曜日一覧をまとめたNSArray。
「gNowDay」は現在表示させたい曜日の番号です。

NSPredicate *preDay = [NSPredicate predicateWithFormat:@"day == '%@'",
	[dayList objectAtIndex:gNowDay]];
[request setPredicate:preDay];

これだとダメでした。
「’%@’」の部分を「’土’」など決め打ちにしたらいけました。

次はうまくいったコード。

NSString *preDayStr = [NSString stringWithFormat:@"day == '%@'",
	[dayList objectAtIndex:gNowDay]];
NSPredicate *preDay = [NSPredicate predicateWithFormat:preDayStr];
[request setPredicate:preDay];

一度NSStringに格納してからやったら出来ました。
そういうもんなのかー。

そしてこれは複合条件の指定。NSCompoundPredicateを使います。
「土曜の東館」とか指定するわけですね。

NSString *preDayStr = [NSString stringWithFormat:@"day == '%@'",
	[dayList objectAtIndex:gNowDay]];
NSPredicate *preDay = [NSPredicate predicateWithFormat:preDayStr];
NSPredicate *preArea = [NSPredicate predicateWithFormat:
	@"areaCode == %d",areaCode];
NSPredicate *allPre = [NSCompoundPredicate
	andPredicateWithSubpredicates:[NSArray arrayWithObjects:
	preArea, preDay, nil]];
[request setPredicate:allPre];
Object-Cの割り算でハマった
Posted 2010年6月20日 | Auther ダダ | Category 未分類 | Tag タグ: ,

もんのすごい単純なことでドハマりました…。

float floatNum = 128 / 255;
NSLog(@"%f", floatNum);  // 結果は「0.0000〜」
float floatNum = 128.0 / 255.0;
NSLog(@"%f", floatNum);  // 結果は「0.501960〜」

小数点のついた値でないと切り捨てられちゃうのかーーーー!!!
c言語ってのはそういうもんなんですか?

しかし整数で格納している値を計算して小数点を出したい時は
どうやって「.0」をつければいいんだろう…。

int intNum = 10;
float floatNum = intNum;
NSLog(@"%f", floatNum/50);  // 結果は「0.2000〜」

なるほど、いったん float型に代入すればいいのか。
って、めんどくさいw

Object-Cで16進数文字列から数値に
Posted 2010年6月19日 | Auther ダダ | Category PC・デジタル | Tag タグ: ,

iPhoneプログラミングメモ。

htmlなどで使う16進数の色を10新数の数値に変換する方法。

NSString *colorString = @"ff0000";
int r,g,b;
sscanf([colorStr UTF8String],"%02X%02X%02X",&r,&g,&b);

NSScanner の scanHexInt を使ってもできるみたいだけど、
こっちのがシンプルなので。

#defineを使う方法なんてのもあるんですね。

#define HEXCOLOR(c) [UIColor colorWithRed:((c>>16)&0xFF)/255.0 \
green:((c>>8)&0xFF)/255.0 \
blue:(c&0xFF)/255.0 \
alpha:1.0];

UIColor *color = HEXCOLOR(0xff00ff);
「とら祭り2010」に参加します!
Posted 2010年6月16日 | Auther ダダ | Category インフォメーション | Tag

すっかりご無沙汰しておりました。^^;

iPad購入の話とか、WiMAXの話とか、iPadアプリ作り始めたとか
いろいろ書きたいことはあるのですが。

そんなわけで6/20に東京ビックサイトで開催される「とら祭り2010」に
参加しております。

え-20A 「CLIC CLAC」

新作は用意してないのですが「田舎でシよう」シリーズを持っていく予定です。

夏コミには「世界めいわく劇場」の新作を用意しますので楽しみにしててください!

サークルブログに書きましたがこちらでも一応。