[iOS SDK] 実装ファイルでメンバ変数を宣言する

公開日: : 最終更新日:2015/01/24 iPad, iPhone

Xcode 4.x を導入したらいろいろ見慣れない記法があったので、いまさらながら一部まとめてみた。
参考文献はこちら。

詳解 Objective-C 2.0 第3版
詳解 Objective-C 2.0 第3版 荻原 剛志ソフトバンククリエイティブ 2011-12-28
売り上げランキング : 9867

Amazonで詳しく見る

by G-Tools

この本の発売は2011年12月なので、ぎりぎりXcode 4.2 までの変更が含まれているのだろう。
ということでXcode 4.4 のリリースから @synthesize が省略可能になった件などは含まれていない。

変更点はソフトアンテナブログさんへのリンク。

Xcode 3.x 時代の書き方はこちら

@interface Foo {
NSString *name;
@private // @private でアクセス権?を制限できた。何も書かないと@protectedになる
int innerVariable; // 内部変数
}

@property (nonatomic, copy) NSString *name;

@end

// 実装部分
@implementation

@synthesize name; // @synthesize か、@dynamic が必要だった

@end

Xcode 4.5 時代の書き方はこちら

@interface Foo
@property (nonatomic, copy) NSString *name; // この1行だけでよくなり、@synthesize は不要
@end

// 実装部分

@interface Foo() { // クラスエクステンションによるインスタンス変数宣言
int innerVariable; // 内部変数
}
@end

@implementation Foo { // 実装部でのインスタンス変数
int innerVariable; // 内部変数
}

@end

クラスエクステンションによるインスタンス変数の宣言

通常、クラス名の横に括弧を書くとカテゴリ名となるけれども、カテゴリ名を書かないとクラスエクステンションとなるらしい。
これにより、内部メソッドや内部変数を宣言することができる。

Xcode 4.5 で New File すると、このクラスエクステンションが勝手に .m の一番上に用意されるようになっていて、最初何かわからなかったので調べ始めたのがこの記事を書いたきっかけだった。

参考リンク
Objective-Cのカテゴリ | YOHEI’s BLOG

実装部でのインスタンス変数

萩原本3版 P80 実装部でのインスタンス変数定義より。
Xcode 4.2以降のclangコンパイラから、クラス定義においてインスタンス変数の定義を実装部に記述できるようになった。
この方法でも内部変数を定義することができる。

クラスエクステンションと、実装部での変数定義とどう使い分けるのが良いのかは不明。
Xcode が自動で作成するのはクラスエクステンションなので、こちらを使うのが推奨になるのだろうか。

参考リンク

関連記事

MacFan 2019年11月号購入

毎年この時期は必ず Mac雑誌を買っている。発売されたばかりのiPhone情報が特集されるためだ。

記事を読む

Linking 対応デバイス tomoru

この前 Makuake で出資しそこねた Tomoru が Amazon で ¥ 1,069 + ¥

記事を読む

no image

リズムくん Ver.1.2 アップデート 2012/02/05

iPhone用リズム学習アプリ リズムくん Ver.1.2 アップデートを App Stor

記事を読む

no image

iPad スタンド SANWA SUPPLY MR-IPADST1 感想

以前書いた、iPad スタンド SANWA SUPPLY MR-IPADST1 が届いて、しばらく使

記事を読む

MacOS版1Password を3.8.22から 5.4.1にアップグレード

3.xからの1Password ユーザで、MacOS版もiOS版も有料版を3.xの頃に購入して、

記事を読む

EverLearn 2.2.1 を公開しました

自作英単語学習アプリ EverLearn 2.2.1を公開しました。 ユーザの方から

記事を読む

[iOS SDK] UIPickerView の文字が表示されない

おんぷちゃん for iPad のiOS7対応をしているときに遭遇した問題。 UIPopove

記事を読む

no image

Xcode4 の初Submit作業ではまる 2011/07/11

昨夜、タッチ! にほんちずHDの次のアプリを検証していて、iPadを回転させるとアプリが異常終了して

記事を読む

no image

KickstarterでMiselu の iPad用キーボード C.24 に出資してみた

C.24 - The Music Keyboard for iPad by Miselu —

記事を読む

コードちゃん 1.2.1 をリリースしました

3年以上アップデートしていなかった、コードちゃん をアップデートしました。 Cmb5

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

  • 2013年1月
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
PAGE TOP ↑