[iPhone SDK] Objective-C 2.0 のプロパティ
Objective-Cのプロパティで時々はまるので、メモ。(詳解 Objective-C 2.0 P.295)
プロパティに代入をすると、オプションに応じて実際は内部ではこのようなことが行われている。
しかしこれはあくまで概念で、このままのコードがどこかに生成されているわけではないらしい。なので、この内部にブレークポイントを張ったりはできない。
@propertyのオプションが assign だった場合
-(void)setName:(TYPE)obj { name = obj; }
@propertyのオプションが retain だった場合
-(void)setName:(TYPE)obj { if(name != obj) { [name release]; name = [obj retain]; } }
@propertyのオプションが copy だった場合
-(void)setName:(TYPE)obj { if(name != obj) { [name release]; name = [obj copy]; } }
Objective-C では、nil にメッセージを送っても何も起きない(落ちたりしない)ので、name が nil だった場合 nil に release が送られてしまうが、問題がない。(詳解Objective-C 2.0 P.62)
詳解 Objective-C 2.0 | |
荻原 剛志
ソフトバンククリエイティブ 2008-05-28 おすすめ平均 |
関連記事
-
2歳の娘がiPadを離しません タッチ! うごく うたえほん
開発用に買ったのでアプリ開発時以外はあまり使っていなかったiPadはここしばらく完全に2歳の娘用にな
-
[iPhone SDK] Log Locations 1.2 を Submit
かなり久しぶりに、自動で毎日移動した場所を記録する Log Locations をアップデートした。
-
#WWDC21の勉強メモ 購入
https://note.com/shu223/m/m1432c132b9b4 今年も sh
-
初代 iPad mini 16GB ブラックスレート注文
予約は10/26(金)16:00 きっかりに開始され、iPad mini 16GB ブラックスレート
-
2009年11月発売のiPhone SDK関連書籍
11月も良さそうなiPhone SDK本が次々と発売される。 Mac OS X Cocoa プログラ
-
[iPhone SDK] 処理を遅延実行する方法
処理を少し遅らせて実行したいときがたまにある。 そういうときには、NSObjectの - (voi
-
[iOS] INNER JOIN に失敗する
非常に面妖な状況でにわかには信じがたいのだが、iPhone 6 Plus だと問題なく動作する
-
iPhone 3G 購入
ついにiPhone 3G 購入。とは言っても自分ではなく奥さん用。 そのうちiPhone 3G 初
-
[iPhone 開発本] iPhone Advanced Projects がおもしろい
Apressのページはこちら。公開されているサンプルコードは43MBもある。
-
Pebbleアプリ改造中
PebbleアプリEverLearnを改造中です。1秒1単語で1分間で60単語を表示。左が初代Peb