Hatena::ブログ(Diary)

qsonaの日記

QLOOKアクセス解析

2012-06-11

propertyの宣言

propertyに対応するインスタンス変数は_で始めるってどっかのブログで教わったけど
どうもそうでもないみたい。

以下よくないらしい例

@interface ClassA : NSObject
{
   int _value;
}
@property int value;

---------------------

@implemention ClassA

@synthesize value = _value;

以下、荻原本からの引用

なお、下線(アンダースコア)「_」から始まる名前を接頭語として使ってはいけません。下線から始まる名前は、Apple社がAPIを構築する際にインスタンス変数やプライベートなメソッドの名前として使うために予約しています。このような名前を使うと、リファレンスに公開されていないプライベートな識別子と衝突する恐れがあります。

Cocoaと同じ書き方だから良いかと思ったら逆だったという。

で、じゃあどうするかというと、

ということでよさそうなのかな。
どうしても使いたかったらGoogleコーディングルールにあるように(確か)

int value_;

とするのが良いんだろう。でも何となく最後に_が来るのが見た目的に慣れない。気に食わない。
いらいらしてまで使うほどのものではないだろう。

そーすると、引数名は衝突しないようにしなければいけないよね。
Javaのように、

private int setValue(int value) {
   this.value = value;
}

のような書き方はないわけで。引数をaValueとかにするのかな。

[iOS5] ARC : プロパティ属性と使い方 | Natsu note
あとで参考にする。
今までここのブログは知らなかったけど見やすい。参考にしよう。
子供の誕生日がうちのと1日違いだ。必要になったら本買おう。

追記: 続き書きました。6/13参照

はてな記法

はてな記法を少し覚える。

void suicide() {
   this = null;
}

  1. 食べたいものリスト
    1. しょうが焼き
    2. 角煮
    3. アンキパン

iOS5ってiPhone5からだと思ってたら違った件について

ここにきて、荻原本を買ってしまった。文章が読みやすくていい感じ。

詳解 Objective-C 2.0 第3版

詳解 Objective-C 2.0 第3版




それはともかく、Objective-C2.0ではガベージコレクタがあるが、iOSでは利用できない(リソースの問題だと思う)
それに代わってと言うべきか、ARC(Automatic Reference Counting)という機能がiOS5以降では使える。
ここまでは把握していた。

しかし表題の通り、僕はiOS5=iPhone5以降と勝手に勘違いしていたので無視していたんだけど、
今調べたら3GSから、iPadに至っては初代から使えるとは・・・

まあ、途中までMRCで書いてしまったことを考えても、勉強し直してARCで書いた方がコスト安くて済みそう。

Connection: close