タグ

ブックマーク / terazzo.hatenadiary.org (6)

  • Re: nil に対するメッセージ送信が例外にならない - terazzoの日記

    お題: ・nil に対するメッセージ送信が例外にならない この仕様って、Objective-C以外でほとんど見かけたことがないのだけど、メリットに比べてデメリットが大き過ぎると思う。オブジェクトのメソッドチェインでこの仕様がたまに便利なことはあるけど、ほとんどの場合、バグが発現するタイミングが遅くなるだけに終わるというのが経験則。この辺、熟練のObjective-Cerはどう考えてるのか一度知りたいところ。 Objective-Cで不満に思うこと - kmizuの日記 もう10年以上仕事でObjective-Cは使ってないので、熟練というよりは只のロートルなんだけど、自分なりに考えた事を書いてみようと思う。 随分前の事を思い出しながら書くのと、憶測も交えているので、あまり正確な内容でない事はあらかじめ断っておきます。 Objective-Cの例外について まず、そもそもObjective-

    Re: nil に対するメッセージ送信が例外にならない - terazzoの日記
  • Blocksをメソッドとして追加する - terazzoの日記

    imp_implementationWithBlock()という、BlockからIMPを作り出す関数がiOS 4.3 or Lionから使えるようになったみたいなので、これを使って実行時にインスタンスメソッドを追加する実験 例えば、モーダルウィンドウをクローズした時に自動的にstopModalするコードは下のようになる。簡単。*1 /* CLANG_ENABLE_OBJC_ARC = YES */ #import <Foundation/Foundation.h> #import <AppKit/AppKit.h> #import <objc/runtime.h> ... NSApplication *application = [NSApplication sharedApplication]; BOOL (^windowShouldClose)(id, id) = ^(id self,

    Blocksをメソッドとして追加する - terazzoの日記
  • Re: Objective-C で AUTOLOAD (あるいは method_missing ) - terazzoの日記

    お題: http://unknownplace.org/memo/2011/12/05/1/ リンク先の実装だと引数の値が取得出来ないので、以下の制約付きで引数が取れるようにしてみた。 戻り値は常にid型 引数は全てid型 引数にnilを指定されたときはNSNullに変換 #import <Foundation/Foundation.h> @interface Foo : NSObject - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments; @end @implementation Foo - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments { NSLog(@"call:'%@' withArgumen

    Re: Objective-C で AUTOLOAD (あるいは method_missing ) - terazzoの日記
  • CALayerで3Dグラフィックス? - terazzoの日記

    ちょっと3Dグラフィックスやってみようかと思って、もしかしたら座標変換のライブラリはないかとドキュメントを見ていたら、Core Animationの関数を使ってアフィン変換・透視変換とかできる上に、そのまま描画もできるらしいということが分かった。 Core Animationプログラミングガイド: レイヤジオメトリと変換 Core Animationプログラミングガイド: Core Animationレイヤの配置 やってみた結論としては、がっつり3DやるならやっぱりOpenGLとか使った方が良いと思う。けど、簡単な図形や画像をちょっと俯瞰っぽく見せたい、ぐらいなら使えるかも。 ちなみにOSバージョンはSnow Leopard(10.6.6)です。 追記: これで立体迷路アプリ作ってみた 準備1. CocoaのクラスにCALayerを貼付ける とりあえず適当なサイズのウィンドウを表示させてC

    CALayerで3Dグラフィックス? - terazzoの日記
  • Objective-CエンジニアのためのObjective-C Blocks入門 - terazzoの日記

    Mac OS X v10.6以降とiOS 4.0以降ではObjective-CにBlocksというシンタックスが追加されているらしい。 Blocks Programming Topics: Introduction http://unknownplace.org/memo/2010/05/11/1/ RubyエンジニアのためのObjective-C Blocks入門 : As Sloth As Possible 後者のエントリから引用: void (^f)(id) = ^(id x) { NSLog(@"世界の全てを敵に回しても、僕は%@の味方だ", x); }; f(@"うどん"); id型(Object)としてコレクションに突っ込んだりも出来るし、関数呼び出しのように使うこともできるらしい。つまり…どういうことなんだってばよ? てことで調べてみた。 まとめ Blocksは__NSGlo

    Objective-CエンジニアのためのObjective-C Blocks入門 - terazzoの日記
  • 入力したURLからソースを取得するサービス - terazzoの日記

    お題: ブラウザを開かずに直接HTMLソースを見る方法 - 頭ん中 テキストエディタの「開く」でファイル名を指定するところに そのまんま URL を入力したら そこにあるソースを読み込むことができるのだった。 画像編集ソフトの「開く」で ウェブ上にある画像のURLを指定しても同じく開けました。 これって Mac ではきないんだろうか。 Mac のファイルまわりで一番不便だなと思うこと - 頭ん中 テキストエディットを改造したりしてもいいかもしれないけど、それだと汎用性ないし、とりあえずサービスとして実装してみた。 テキストのみで画像対応はなし。NSImage経由でTIFFRepresentationをNSTIFFPboardTypeにセットすれば画像用のサービスも作れそうではある。 ちなみにサービス作るのはNEXTSTEP 3.3Jの時以来なので作り方おかしいところあるかも。 追記(200

    入力したURLからソースを取得するサービス - terazzoの日記
    Watson
    Watson 2009/01/13
  • 1