サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
cx5software.sakura.ne.jp
Objective-Cのちょっと他には無い機能について、自分自身のメモのためにも書き留めておこうと思います。 まずは、selectorから。 C/C++の関数ポインタに近いですが、動的言語としての面も持ち合わせているObjective-Cらしい所もあり、Javaのリフレクション/イントロスペクションの方が近いかもしれません。 @interface MyClass : NSObject -(void)hello; @end @implementation MyClass -(void)hello { NSLog(@"Hello"); } @end int main(int argc, const char * argv[]) { @autoreleasepool { SEL helloSelector = @selector(hello); MyClass *aObj = [[MyClass
Objective-Cの機能のネーミングは、わかりにくい気がします。今回は名前からは想像できない機能を持つ「カテゴリ」です。 カテゴリは既存のクラスを、継承することのなく機能拡張してしまう機能です。なんと恐ろしい。 @interface MyClass : NSObject @end @implementation MyClass @end @interface MyClass (MyCategory) -(void)print; @end @implementation MyClass (MyCategory) -(void)print; { NSLog(@"Hello World!"); } @end これで、MyClassを拡張して、新たにprintメソッドを追加しています。@interfaceと@implementationを以下のように書くところがポイントです。 @interfa
Channel9にて公開されているC++ and Beyond 2011の動画にて、Andrei Alexandrescu、Scott Meyers、Herb Sutterの三名が、C++ and Beyond 2011の参加者からの質問に回答している。 その中で4:34からの「On shared_ptr performance and correctness」が興味深い。 質問の主旨としては、shared_ptrを関数やメソッドへ渡す場合、const参照で渡すべきかどうかということらしい。つまり、 void func(std::shared_ptr<std::string> s) { ... } int main(int argc, char* argv[]) { std::shared_ptr<std::string> s = ...; func(s); } とするか、const参照に
Objective-Cを勉強していて一番驚いたのがメモリ管理の仕組みです。ちょっと前までは、手動メモリ管理(MRC: Manual Reference Counting)、その後、GCがMac OS Xのみに入ったけど、最近になって新たにARC(Automatic Reference Counting)が導入されたとのこと。これからはARCが主流となるとのことで、少し調べてみました。 Appleの出している資料は、おそらくこのTransitioning to ARC Release Notesのみだと思われます。でも、どのような仕組みでARCが動作しているかの情報もなく、少しわかりにくい。 おそらく一番詳しいのはClangのAutomatic Reference Countingだと思います。これを読むと、内部でどのような動作をしているのかはわかります。ただ、じゃあ実際のコーディングはどう
Objective-Cには「Key-Value Coding (KVC)」というものが備わっており、文字列による名前指定でプロパティの値の取得、設定といったことができるらしい。Javaだと、Java Beans + BeanUtilsを組み合わせた機能といったところでしょうか。こういった機能が言語の標準機能として備わっているというのは面白い。 参考にした資料はKey-Value Coding Programming Guideです。 Objective-CにおけるKey-Value Coding Key-Value Codingとは オブジェクト指向言語であるObjective-Cでは、インスタンス変数へ直接アクセスすることは許されず、以下のようにsetter/getterを定義することとなります。 #import <Foundation/Foundation.h> @interface
このページを最初にブックマークしてみませんか?
『cx5software.sakura.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く