動的に複数のボタンを作っていたら、ボタンを押したとたん落ちてしまう。
そんな状態にハマりました。^^;
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 0x48609a0
なんだろーなんだろーと検索しても有効な情報が得られない。
ふと、作例を載せているサイトを見ていたら…あっ!!
[button addTarget:self action:@selector(mapButtonTouch:) forControlEvents:UIControlEventTouchUpInside];
@selectorでメソッドを指定する時に最期の「:」を付け忘れただけでした。
うわー、まぬけすぎるw
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にまで手を出しています。
で、日本語検索が出来なくてハマったのでメモ。
「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];
もんのすごい単純なことでドハマりました…。
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
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);