Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

Promiseの実装練習2

Objective-c版を実装し始めた。
C言語だと可変長引数の扱いどうしようとかトラブってなかなか進んでいない。一旦thenとresolve関数だけ実装してみた。

https://github.com/nilfs/promise-objc

メンバメソッドを呼ぶためにオブジェクトと関数ポインタ(セレクタ)を取っておく必要があってそれはNSInvocationというクラスを使うとうまくいく。

そもそも可変長引数のメソッドをどう扱おうと思ったときはここを参考にした

http://d.hatena.ne.jp/Kazzz/20120211/p1

NSInvocationというクラスの存在がわかったので少し光が見えてきたわけ。

NSInvocationクラスの使い方はここを参考にした

http://d.hatena.ne.jp/Kazzz/20120211/p1

まだ導入してないけど、このNSInvocationを生成するカテゴリは便利そう。
http://taoru.hateblo.jp/entry/20121119/1353290439


だんだんObjectiveCでも約束を守る実装が作れそうな気がしてきた。ObjCで出来るからC++でもどうにかなるかなぁ・・・。可変長引数を取っておく辺りのメモリ管理とか考えないとダメか