yashiganiの英傑になるまで死ねない日記

週末はマスターバイクでハイラルを走り回ります

Objective-C

OCMockでNSManagedObjectをstubする

NSManagedObjectのプロパティをstubしようと思ってめっちゃはまった. こんな風に普通にstubしようとしてもstubできない. // こんなNSManagedObjectのサブクラスがあるとする // @interface Event : NSManagedObject // @property (nonatomic, retain) NSDa…

Objective-Cが好きになるTips & Hackを勝手に補足

TLで見かけたこのスライド,いいところをついていてちょっとObjective-Cをやったことのある人が,もっと興味を持つきっかけを作るにはすごく良いスライドだと思った. Objective-C が好きになる Tips & Hack from Taketo Sano けど,内容を見た感じ初学者を…

Cocoa関西勉強会#54でTDDについて話してきました #cocoa_kansai

最近TDDやってて意識高まりまくってるので,TDDについてCocoa勉強会関西#54でTDDについて発表してきました. 個人の感想レベルの発表なのでTDDモヒカンの方は斧をおさめてください. スライドはこちらです. スターお待ちしています. あと,サンプルに出し…

最近はやってるNSLogの書き方

2014年のご時世になっても,やはりprintfデバッグはそのお手軽さとあいまってよく使われる. Objective-Cでの開発でもそれは御多分に洩れずそんな感じで,NSLogを埋め込んで変数の様子をコンソールに出力する. viewのheightなどを表示したいとき, CGFloat …

古来よりobjcプログラマはstringByAddingPercentEscapesUsingEncoding:がウソもんやということに悩まされてきたけど,普通にJSのencodeURI()使えばよかったんちゃうんかということに気づいた

モバイルアプリにWebとの連携は不可欠なわけで,iOSエンジニアがWeb APIを使うとき最初にどないすんねん!とぶつかる問題がパーセントエンコーディングだと思う. 我らがNSStringにはそれを解決するためのstringByAddingPercentEscapesUsingEncoding:という…

Cocoa勉強会関西に参加してきました

Cocoa勉強会関西#53に参加して,こないだリリースしたStop-Walking-iPhoneについて話してきました. スライドはこちらです. ライブラリの紹介だけだとアレなので,M7とUIKit Dynamicsを使うときのポイントについても軽く話しました. 自前のUIパーツにUIKit…

CFNetworkのラッパーを書いた

シンプルなCFNetworkラッパーを公開します 色々事情があって,CFNetworkのラッパーを書いて棄てたので公開します. CFNetworkとは Cocoa/Cocoa touchではNSURLConnectionっていうクラスがあって,基本的にはそれを使ってHTTPなどの通信をします. Foundation…

Cocoa関西勉強会#49に参加した

Cocoa関西勉強会#49に参加して,マルチスレッドプログラミングについて話してきました. スライドは以下 Cocoa関西勉強会#49 from yashigani 本当に伝えたかったこと キャンセル必要なら迷わずNSOperationQueueを使え セレクタのことは嫌いになってもNSOpera…

わりとどうでもいいObjCに文字列埋めるときのtips

jsとかsqlとか複数行にまたがる文字列をコードに埋めるとき,stringWithUTF8String:を使うとなんとなく読みやすいし,デバッグしやすい /* こういう風に書くより NSString *code = @"var add_func = function() {" @" alert('hello!');" @"};" こっちのほう…

メソッドがドット記法で呼べる

まずこれを見てほしい NSArray *a = @[@"hoge", @"fuga"]; NSLog(@"%d", a.count); // 2 なにも驚くことはない.ただのプロパティへのアクセスに見える では次 NSString *str = NSString.alloc.init; なにを血迷ったのかバカめ,などと思ったかもしれないが…

プロパティの話

ひょんなことから[NSArray count]と[NSString length]に.演算子でアクセスできることを知った.死ぬほど今更やけど、[NSArray count]って.でアクセスできるのね...— おもしろコンテンツさん (@yashigani) 11月 5, 2012 NSStringのlengthもいけるな— おもしろ…

Cocoaの覚えておくと便利だと思う機能

[NSDate dateWithNaturalLanguageString:] 文字列からNSDate作るのはけっこうめんどうだけど,これを使えばNSDateFormatterなしに作れます,一度動作確認さえすればいいので,値のフォーマットが固定されている場合には有用です.(Macのみ) [NSArray lastObj…

今日のtips

こういうのを NSArray *version = [NSArray arrayWithObjects:@"10.5", @"10.6", @"10.7", nil]; NSArray *name = [NSArray arrayWithObjects:@"Leopard", @"Snow Leopard", @"Lion", nil]; @"10.5: Leopard", @"10.6: Snow Leopard", @"10.7: Lion" こうい…

initWithObjectsAndKeys: の落とし穴

なにかと便利な dictionary でとりわけ便利なのが initWithObjectsAndKeys: です しかし,以下のようなときにはまるので要注意です NSString *head = @"head"; NSString *body = nil; NSString *tail = @"tail"; NSDictionary *dict = [NSDictionary diction…

セレクタを配列にしてみた

セレクタは便利だけど,オブジェクトじゃないのでそのまま NSArray にはつっこめない. NSValue でラップすればできるけど,同じスコープ内でとりあえず使いたいときとかにはかなりめんどう. しばらく考えた結果,C の配列にしてみた. SEL selectors[] = {…

InterfaceBuilderを捨てるときにすることのまとめ

とてもすばらしいiPhoneのプログラムを書こうと思うと,Xcode に InterfaceBuilder とかいうわけわからんホームページビルダーみたいなのを使うことを強制されて非常にやりにくい ここにいい感じにまとめてあったけど,なんかはまったので InterfaceBuilder …