Objective-C++

NSTimer の止め方

m_timer = [[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@seletor(timerCallback:) userInfo:nil repeats:YES] retain];この NSTimer を削除する際に、 [m_timer release]: このように、単に release しただけでは削除されず、タイマ…

文字列をアルファ付きの画像として保持する

文字列をキャッシュしたい場合なんかに有効かも。 UIImage* CreateImageFromString(NSString* str) { // この辺は引数にするなり何なりで適当に。 UIFont* font = [UIFont systemFontOfSize:12]; float r, g, b, a; r = g = b = a = 1.0; CGSize size = [str…

NSObject と intrusive_ptr の親和性

は結構高いと思うのです。 void intrusive_ptr_add_ref(NSObject* obj) { [obj retain]; } void intrusive_ptr_release_ref(NSObject* obj) { [obj release]; } て書いて、あとは boost::intrusive_ptr とか boost::intrusive_ptr とかを使うだけ。 これは特…

Unicode のバッファから NSString を生成する

普段は自前の Unicode 文字列クラス(もしくは std::basic_string)で管理していたとしても、描画したり NS〜 の API を呼ぶ際には NSString を作る必要がある。 しかし出来る限り NSString の生成コストを減らしたいという場合、以下のように書くのが良さそ…