Submit Search
Metaprogramming
0 likes
830 views
Akura Pi
1 of 13
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
More Related Content
PDF
Scala入門
Yoshifumi Takeshima
PPTX
List demo3
sunzhou241
PDF
Currying
Akura Pi
PPTX
List demo2
sunzhou241
PPTX
Presentación1
Angelica Lorena Garcia Acuna
PDF
そもそもFloatとは
Akura Pi
PDF
Ns user defaults
Akura Pi
PPTX
Exp fisica
Angelica Lorena Garcia Acuna
Scala入門
Yoshifumi Takeshima
List demo3
sunzhou241
Currying
Akura Pi
List demo2
sunzhou241
Presentación1
Angelica Lorena Garcia Acuna
そもそもFloatとは
Akura Pi
Ns user defaults
Akura Pi
Exp fisica
Angelica Lorena Garcia Acuna
Viewers also liked
(12)
PPTX
List demo1
sunzhou241
PPTX
Marine national parks
Penbank
DOC
Cio如何制定与企业战略匹配的it战略规划
sunzhou241
PDF
TableViewAgent
Akura Pi
PPTX
Water Catchments
Penbank
PPTX
Marine national parks
Penbank
DOC
组织结构设计的流程及方法
sunzhou241
PDF
ナイーブツリーの入れ子集合
Akura Pi
PDF
フィア・オブ・ジ・アンノウン
Akura Pi
PPTX
W class
Penbank
PDF
Mvcのすすめ
Akura Pi
PDF
ファントムファイル
Akura Pi
List demo1
sunzhou241
Marine national parks
Penbank
Cio如何制定与企业战略匹配的it战略规划
sunzhou241
TableViewAgent
Akura Pi
Water Catchments
Penbank
Marine national parks
Penbank
组织结构设计的流程及方法
sunzhou241
ナイーブツリーの入れ子集合
Akura Pi
フィア・オブ・ジ・アンノウン
Akura Pi
W class
Penbank
Mvcのすすめ
Akura Pi
ファントムファイル
Akura Pi
Ad
Similar to Metaprogramming
(20)
PDF
Object-Funcational Analysis and design
Tomoharu ASAMI
PDF
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
PDF
Xtext And Grails20091218
Akira Tanaka
PDF
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
PDF
7/7 WordBench kobe dreamweaver seminar
Atushi Sugiyama
PDF
Web制作勉強会 #2
Moto Yan
PDF
Jubatusでマルウェア分類
Shuzo Kashihara
PDF
「愛されたい!」と思ったときにJavaで書くRubyクラス
Koichiro Ohba
PDF
named_scope more detail
Kyosuke MOROHASHI
PDF
運用で爆発四散しないためのメタプログラミングとの付き合い方
Yuki Ishikawa
PDF
[豆ナイト]Java small object programming
Yuichi Hasegawa
PDF
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
PPTX
APA01 2015513
Wataru Shiraishi
PPTX
APA01 2015513 1
Wataru Shiraishi
PDF
Object-Functional Analysis and Design and Programming温泉
Tomoharu ASAMI
PDF
オブジェクト指向開発におけるObject-Functional Programming
Tomoharu ASAMI
PDF
Scalaプログラミング・マニアックス
Tomoharu ASAMI
PPTX
CMSMix Sapporo vol.3 (Drupal の回)
Kenji Shirane
PDF
Xcode4 project template (slide)
Wataru Kimura
PPTX
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
Object-Funcational Analysis and design
Tomoharu ASAMI
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
Xtext And Grails20091218
Akira Tanaka
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
7/7 WordBench kobe dreamweaver seminar
Atushi Sugiyama
Web制作勉強会 #2
Moto Yan
Jubatusでマルウェア分類
Shuzo Kashihara
「愛されたい!」と思ったときにJavaで書くRubyクラス
Koichiro Ohba
named_scope more detail
Kyosuke MOROHASHI
運用で爆発四散しないためのメタプログラミングとの付き合い方
Yuki Ishikawa
[豆ナイト]Java small object programming
Yuichi Hasegawa
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
APA01 2015513
Wataru Shiraishi
APA01 2015513 1
Wataru Shiraishi
Object-Functional Analysis and Design and Programming温泉
Tomoharu ASAMI
オブジェクト指向開発におけるObject-Functional Programming
Tomoharu ASAMI
Scalaプログラミング・マニアックス
Tomoharu ASAMI
CMSMix Sapporo vol.3 (Drupal の回)
Kenji Shirane
Xcode4 project template (slide)
Wataru Kimura
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
Ad
Metaprogramming
1.
Metaprogramming @akuraru
2.
自己紹介 • Scalaが好き • Objective-Cは生成するもの •
こわくない @akuraru
3.
メタプログラミング
4.
メタプログラミング • プログラミング技法の一種で、ロジックを直接コ ーディングするのではなく、あるパターンをもっ たロジックを生成する高位ロジックによってプロ グラミングを行う方法、またその高位ロジックを 定義する方法のこと。主に対象言語に埋め込まれ たマクロ言語によって行われる。
5.
メタプログラミング • クラスやメソッドを生成するロジックの事 • Objective-Cには実行時に行うことができる •
今回はコンパイル時にメソッドを増やす カテゴリの話
6.
カテゴリ • コンパイル時に既存のクラスにメソッ ドを追加、上書きできる機能 • 例 •
NSDate-Escort、MagicalRecord
7.
書き方 @interface NSDate (Escort) -
(BOOL)isToday; @end @implementation NSDate (Escort) - (BOOL)isToday { return [self isEqualToDateIgnoringTime:[NSDate date]]; } @end 参考:https://github.com/azu/NSDate-Escort
8.
実装 • コンパイル時に既存のクラスにメソッ ドを追加、上書きしている • ヘッダーをインポートしなくても実行 できる
9.
良いところ • 手軽 • ファイル分けができる •
テストするとき便利
10.
問題 • 同じクラスに同じメソッドを別のカテ ゴリで追加した場合、どちらかが適用 される • 実装ファイルがなくてもコンパイルエ ラーにならない •
責任過剰になりがち
11.
カテゴリを用いていい場合 • 複数クラスにメソッドを追加したい • それが自然と思える場合
12.
解決法 • 継承 • Static
Classを作る
13.
まとめ • 簡単に既存のクラスにメソッドを追加 できます • 何でもかんでもカテゴリで解決しない
Download