[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 SDK 3.1.2 のお知らせ

Appleより、iPhone SDK 3.1.2 のお知らせが来た。 3.1.2 はバグフィックスリ

記事を読む

no image

メイドインジャパンとiPad、どこが違う? 世界で勝てるデジタル家電 感想

西田宗千佳氏の本はいつも面白い。 今回も予想に違わず面白かった。 自分も同じような情報は知っているは

記事を読む

Appleシリコン搭載Mac発表?

いつからか、下記の文言が App Store Connect で表示されるようになった。

記事を読む

App Annie App Store 連携失敗

App Annie の App Store 連携機能を使って、日々のストアの売り上げをメールで受け

記事を読む

no image

iOS4プログラミングブック の感想など。

前評判によるとかなりの力作のようなので、久しぶりにiOSの本を買ってみた。 ソースコードはすでに発売

記事を読む

[iOS] 取り下げになったアプリを更新

しばらく更新していなかったら App Store から取り下げになった「タッチにほんちず」アプ

記事を読む

no image

[iPhone SDK] Apple Push Notifiction Service (APNs)対応 その1

Apple Push Notification Service (以下、APNs) を使ったiPho

記事を読む

no image

iPadアプリ おんぷちゃん が雑誌に紹介されました

いろいろあって、iPhone/iPad アプリのおんぷちゃん がムジカノーヴァ2011年2月号で紹介

記事を読む

no image

Beginning iPhone 3 Developmentの続編が出るらしい

iPhone開発の入門書としていま一番良いと個人的に思っている、Apressの Beginning

記事を読む

no image

謎のエラー iPhone/iPod Touch: application executable is missing a required architecture

リズムくん Ver.1.1の App Store への Submit の際に、謎のエラー iPhon

記事を読む

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 ↑