タグ

プロパティに関するmonoqloのブックマーク (7)

  • Cocoaの日々: [iOS8] NSObjectに新プロパティ4つ

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど iOS8ではNSObjectに4つのプロパティが新規に追加された。 NSObject.h @property (readonly) NSUInteger hash; @property (readonly) Class superclass; : @property (readonly, copy) NSString *description; @optional @property (readonly, copy) NSString *debugDescription; 正確に言うと情報が増えたわけではなく、従来メソッドだったものが readonlyプロパティに変更された。 iOS7の時はこんな感じ。 - (NSUInteger)hash; - (Class)superclass;

    Cocoaの日々: [iOS8] NSObjectに新プロパティ4つ
  • Objective-Cで"@dynamic"の使いどころを考える | TOKOROM BLOG

    Objective-Cの @dynamic はお好きですか? ぼくはけっこう好きです。 @synthesizeのほうは昔はほぼ必須で書かないといけなかったり Xcode4.4で省略できるようになった ことで有名ですが、いっぽうで@dynamicのほうはあまり日の目を浴びていない気がします。 そこで、今日は@dynamicについて再考してみることにしました。 以下、ぼくが思い返してみて@dynamicがこんなときに便利だったと感じたところを2点挙げさせていただきます。 みなさまのほうでも「こんなとき便利だよ」というのがありましたら是非ご教示ください。 クラスの内部実装が適当なのを隠すときに そもそもこの実装自体がどうかという話もあるのですが、リファクタリング前にひとまず雑な実装をしてしまうことはままあります。 例えば、ゲームスコアを管理するGameScoreクラスを作ったとして、その中で ハ

    Objective-Cで"@dynamic"の使いどころを考える | TOKOROM BLOG
  • Objective-C の atomicity について調べてみる

    Objective-C のプロパティには、属性として atomic や nonatomic というキーワードが指定できるようになっています。 これらを省略した場合は atomic が指定されたのと同じで、この "atomic" という単語を直訳すると "原子性" とか "不可分" とか、そういった意味合いになります。 このキーワードを知った当初には、次のような意味合いがあると認識していたのですけど、どうやらちょっと思っていたのと違うようです。 atomic は、マルチスレッド環境でスレッドセーフを実現する、らしい。 atomic プロパティを @synthesize で実装すると、setter や getter を @synchronized (self) で括ったのと同じになる、らしい。 それならつまり、単一スレッドでの使用を前提としないクラスを作成するときは、プロパティは atomic

  • [iOS5] ARC : Outletにはweakプロパティを使おう | Natsu note

    [iOS5] ARC : Outletにはweakプロパティを使おう 2011/11/21/|iOS|メモリ管理, iOS5, ARC 今回は、ARCを用いた場合のプロパティ利用に関するTipsです。 ARCって何?と言う方は、まずはこちらからどうぞ。 [iOS5] ARC (Automatic Reference Counting) : Overview [iOS5] ARC : プロパティ属性と使い方 一般的なOutletにはweakプロパティを使う Interface Builderなどを用いて作成したOutletは、一般的に別のview(例えばUIViewControllerのviewなど)のsubviewであることがほとんどです。したがって、これらのOutletのオーナーとなるのはsuperviewのみで十分だと言えます。 ViewControllerは、自身がOutletのオー

    [iOS5] ARC : Outletにはweakプロパティを使おう | Natsu note
  • 『Objective-Cでatomicな宣言プロパティがatomicであるとは限らない話』

    アクセサを使って値をインクリメントしています。これ、ぱっと見て問題があると感じますか? このコードはマルチスレッド環境で動くため、プロパティは以下のようにデフォルトのatomicで(nonatomicを指定せず)定義されています。 @interface AtomicTest : NSObject { int count; } @property(assign) int count; - (void)increment; @end @implementation AtomicTest @synthesize count; - (void)increment { self.count++; } @end int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; A

    『Objective-Cでatomicな宣言プロパティがatomicであるとは限らない話』
  • プロパティに対応するインスタンス変数の命名規則について - Awaresoft

    最近になって変わったObjective-Cのインスタンス変数の命名規則について。 プロパティに対応するインスタンス変数の変数名をプロパティ名と別にすべきか、また、インスタンス変数名をアンダースコア(_)で始めるべきかどうか、さまざまな場所で議論になっているのを見てきて、自分も長い間悩んだ結果、結論が出たのでその経過をまとめておきます。 背景をとばして結論だけ見たい人はこちらへ。 iTunes Uのスタンフォード大学の"CS193p: iPad and iPhone Application Development"の講義は、iPhoneアプリをこれから作ろうという人にはもちろん、既に作っている中級者の方にとっても、見る価値があると思います。 特に、Paul Hegartyによる2011年秋の講義はiOS5に完全に対応していて、説明も非常に分かりやすく、必見です。何と言っても、こんな白髪白髭の

  • iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について – Zero4Racer PRO Developer's Blog

    iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール | Zero4Racer PRO Developer’s Blogの記事を読んでいただき、ありがとうございます。”アキラ”さんから、 オブジェクトは必ずプロパティにする、というのは、利便性を考えれば理解はできますが、 それはクラス設計者が楽をするためであって、カプセル化を無意味にする行為なので、それほどいい選択とは言えないと思いますねぇ。 という指摘を頂きました。これは、プログラムを正しくカプセル化する上で重要です。私もこれは非常に重視していますが、Objective-Cには、プロパティに、プライベート、パブリックの指定が出来ないので、一見、プライベートのプロパティが指摘出来ないように感じます。しかしちょっとの工夫で、実現することが出来ます。 コードで書くと、以下のようになります。 [sourcecode la

  • 1