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

参考リンク

関連記事

no image

iPhone開発のネタ帳: UIPopoverController に UIPickerView をいれる

iPad から追加された部品の一つに、UIPopoverController がある。 iPadが

記事を読む

[iOS SDK] iPad 専用アプリをiPhoneでも使えるようにする

 iPad 初代やiPad2の頃は、iPhoneとiPadの画面サイズがかなり異なり、また

記事を読む

no image

iPhone/iPad で音楽

iPhone/iPad で音楽制作的な本を書店でよく見かけるので、リストアップしてみる。 どれも面白

記事を読む

Topeak iPhone6 Plus 用ライドケースセットを買ってみた

家から最寄り駅まで歩くと結構時間がかかってしまうため、駅前に駐輪場を借りてそこまで自転車で通勤してい

記事を読む

no image

iPhone開発本 iPhone Cool Projects

iPhone Games Projectsに続いて、iPhone Cool Projects も買っ

記事を読む

no image

iPhone から au 公式スパムメールを止める

hotinfo@himail.ezweb.ne.jp からau公式スパムが何度も届くので、重い腰を上

記事を読む

no image

iPhone SDK アプリケーション開発ガイド

iPhone SDK アプリケーション開発ガイド(原題 iPhone SDK Application

記事を読む

no image

Pro iPhone Game Development は発売延期らしい

面白そうだったので結構前にAmazonで注文したのだが、ずっと発売されず、おかしいとおもって発売元の

記事を読む

Xcode6 を使うために強制的に Mavericks にアップグレードさせられたら重い

Mavericks の不具合をさけるためにわざわざ Mountain Lion (10.

記事を読む

Anker の高耐久ライトニングケーブルを買ってみた

立て続けに2本ライトニングケーブルが壊れたので、ふんぱつして高級ケーブルを買ってみた。 たしかに

記事を読む

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

LogLocations 1.4.0 写真表示対応

行動ログは取りたいが、何も操作したくない。という自分のようなずぼらな

Apple Watch用バッテリーロガーを公開しました

1年前に開発し、App StoreにSubmitしたものの Reje

Guideline 2.5.10 – Performance – Software Requirements で Reject

2019年3月27日以降、iPhone Xs Maxの画面サイズ6.

XcodeにiPhoneとwatchが表示されない

2019年はGWに10連休があるということで、今日は3日目。毎日少し

Xcode のインストール進捗確認

Mac App Store を使って 2019/04/18に公開され

→もっと見る

  • 2013年1月
    « 12月   2月 »
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
PAGE TOP ↑