[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 が自動で作成するのはクラスエクステンションなので、こちらを使うのが推奨になるのだろうか。

参考リンク

関連記事

[iOS SDK] Studyplus の API を利用してみる

学習管理プラットフォーム「Studyplus」がAPIを公開——外部教材アプリとの連携を強化 | T

記事を読む

no image

iPhone 3G/3GS用ホルダーケース レイアウト RT-P2LC3 カラビナつき

カバンを持っていないときに、iPhoneをジーパンのポケットに入れておくのはちょっと不安。 なの

記事を読む

[iOS] INNER JOIN に失敗する

非常に面妖な状況でにわかには信じがたいのだが、iPhone 6 Plus だと問題なく動作する

記事を読む

Apple Developer Program更新2019

今年も更新。税別 11800円だった。 2009年から継続しているようだ。もう11回

記事を読む

英辞郎第7版からアルクのSVLを EverLearn に取り込む方法

英辞郎 第七版(辞書データVer.136/2013年1月8日版)アルク企画開発部 アルク 2013

記事を読む

no image

アップルストア渋谷で発売日翌日にiPhone 5を買ってきた

2012年9月21日8時に発売されたiPhone5、自分はヨドバシカメラで予約したのだけれどもちょっ

記事を読む

no image

暗記サポートアプリ YUBImarker

暗記サポートアプリを探している。 YUBImaker はちょっと良さそうなんだけれども、なかなかiP

記事を読む

no image

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

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

記事を読む

no image

[iPhone 開発本] iPhoneのオモチャ箱 でしばらく遊べそう

cocos2d/Box2Dを調べたいと思っていたら丁度発売されたので買ってみた。 実際にcocos2

記事を読む

no image

Invalid EvernoteSession で落ちる問題に遭遇

EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動

記事を読む

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 ↑