Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiroki Uemoto
PDF, PPTX
12,371 views
objective-c propertyの属性について
objective-c propertyの属性についてまとめました。
Technology
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PDF
F#+Erlangで簡単なシューティングゲームを作ってみている
by
pocketberserker
PDF
I phoneアプリ入門 第5回
by
Sachiko Kajishima
PDF
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
by
K Kimura
PDF
BMXUG つきじ#4
by
K Kimura
PDF
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
by
karupanerura
PDF
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
by
azuma satoshi
PPT
Impractical Introduction of Boost Spirit Qi [PPT]
by
yak1ex
PPT
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
by
Hiromu Shioya
F#+Erlangで簡単なシューティングゲームを作ってみている
by
pocketberserker
I phoneアプリ入門 第5回
by
Sachiko Kajishima
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
by
K Kimura
BMXUG つきじ#4
by
K Kimura
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
by
karupanerura
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
by
azuma satoshi
Impractical Introduction of Boost Spirit Qi [PPT]
by
yak1ex
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
by
Hiromu Shioya
Viewers also liked
PDF
Objective-Cのメモリ管理
by
susan335
PDF
Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス
by
Naoyuki Kataoka
PDF
Swiftとメソッドのアレコレ
by
Nobuo Saito
PDF
最近遊んだ Wii Uの 3つのソフトの感想
by
teapipin
PPTX
これからの時代に! パソコン離れの中のパソコン選び
by
teapipin
PDF
ツイッター調査:約173万ツイートを調査して分かったTwitterの利用動向 #twtr_hack
by
teapipin
PDF
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
by
Kenji Tanaka
PDF
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
PDF
テストを書こう、Unity編
by
Hiroto Imoto
Objective-Cのメモリ管理
by
susan335
Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス
by
Naoyuki Kataoka
Swiftとメソッドのアレコレ
by
Nobuo Saito
最近遊んだ Wii Uの 3つのソフトの感想
by
teapipin
これからの時代に! パソコン離れの中のパソコン選び
by
teapipin
ツイッター調査:約173万ツイートを調査して分かったTwitterの利用動向 #twtr_hack
by
teapipin
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
by
Kenji Tanaka
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
テストを書こう、Unity編
by
Hiroto Imoto
objective-c propertyの属性について
1.
objective-c propertyの属性について @jazzsasori
2.
ツッコミ歓迎
3.
株式会社REVENTIVE CTO 植本 裕紀
と申します。 @jazzsasori ↓ Github Facebook Linkedin Twitter
4.
注)ARCが前提です
5.
まずpropertyの宣言 【文法】 @property (オプション) 型
プロパティ名; NSStringの場合、こんな感じ @property (nonatomic, weak) NSString *string;
6.
いや、そもそも @propertyって何じゃい。 ってか@って何じゃい。
7.
objective-c で @
がつくものは コンパイラディレクティブ。 コンパイラディレクティブ? ↓ コンパイラへ特定の命令を前処理す るように指示するもの。
8.
@propertyを宣言すると何が 嬉しい? @property (nonatomic, weak)
NSString *string; ○ ゲッタ/セッタ/メンバ変数が作られます。 - (void)setString:(NSString *)string; - (NSString *)getString; メンバ変数 _string
9.
propertyを.hで宣言する ViewController.h: @interface ViewController :
UIViewController @property (nonatomic, weak) NSString *string; @end ○ 宣言するとアクセサとメンバ変数が作られ該当ク ラスのインスタンス変数からアクセスできます。
10.
propertyを.mで宣言する ViewController.m: @interface ViewController () @property
(nonatomic, weak) NSString *string; @property (nonatomic, weak) IBOutlet UIView *customView; @end @implementation ViewController ∼ @end ○ 宣言するとアクセサとメンバ変数が作られるのは.hと同様ですが、 ViewControllerをインスタンス化して扱う場合にこのpropertyにはアク セスできません。NSStringの例よりは、IBOutletなど、そのクラス内で しかアクセスする必要のないpropertyを宣言して使うケースが多いです。
11.
今日のお話 @property (オプション) 型
プロパティ名; ↑ オプションのお話をします。
12.
propertyのオプションはこんなにあるぞ 種類 メソッド名指定 読み書き属性 値の設定方法 アトミック性 オプション getter=ゲッタ名 setter=セッタ名 readonly readwrite assign retain unsafe_unretained strong weak copy nonatomic 説明 ゲッタ/セッタメソッドの名前 を明示的に指定 読み取りのみ 読み書き(デフォルト) 代入によって値を設定(デフォルト) オブジェクトを保持して設定 assignと同じ(ARC用) retainと同じ(ARC用) 弱い参照(ARC用) オブジェクトをコピーして設定 排他実行されない
13.
?
14.
説明しよう!
15.
getter, setter @property (setter=setValue:)
int count; setterを明示しない場合、setCount: が宣言されます。 self.count = 1; とした場合、setValueが呼び出され ます。
16.
readonly @property (readonly) int
count; setterが宣言されません。さらにこのままだと自分自身も書き換えできません。 以下のようにして下さい。 // .h @interface Hoge @property (nonatomic, readonly) id value; @end ! // .m @interface Hoge () @property (nonatomic, readwrite) id value; @end ※ readwriteは省略可能
17.
weak @property (weak) id
obj; 参照先のオブジェクトが破棄されたら自動でnilが代入 される(ゼロ化 zeroing)。__weak修飾子を持った 変数と同様のふるまい。オーナーシップを持たないの で知らないうちに開放されてしまう。 IBOutlet、delegate を扱う変数はコレがオヌヌメ。
18.
__unsafe_unretained, assign @property (__unsafe_unretained)
id obj; @property (assign) id obj; ゼロ化 をしないweak変数。オーナーシップを持たな い。不要になった時点で自前で解放する。 ※ iOS 4 との互換性のためのオプションなので覚え る必要無いと思います。
19.
strong @property (strong) id
obj; オーナーシップを持つ強い参照。保持の循環(retain cycle)が発生しやすいので注意。勝手に解放される と困るオブジェクトに使う。不要になった時点で deallocで自前解放する。
20.
copy @property (copy) id
obj; オブジェクトのコピーを保持する。strongと同様、 オーナーシップを持つ強い参照。不要になった時点で deallocで自前解放する。
21.
nonatomic @property (nonatomic) id
obj; atomicとはマルチスレッドで動作した時、排他的な動作を して、他のスレッドの干渉を受けないことを保証する事。 デフォルトはatomic。 atomicである必要がなければ必ずnonatomicを指定するこ と。atomicにした場合、排他処理のためパフォーマンスが 下がります。 http://d.hatena.ne.jp/masakih/20120325/1332658392
22.
では、まとめ
23.
まとめ • 必然性が無い限りnonatomic指定。 • strong 指定したらその足でdeallocで解放しに 行こう。 • IBOutlet は
weak • delegate も weak
24.
ご清聴ありがとうございました。
Download