スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーをはてなブックマークに追加

2つのクラスがお互いを参照させる場合のコーディング

UIViewとUIViewController等、2つのクラスがあって、それぞれのインスタンをメンバに保持したい時、何も考えないでコンパイルするとエラーになる。

たとえば、
【file-a.h】
@interface ClassA {
  ClassB *b;
}
@end


【file-a.m】
#import "file-a.h"
#import "file-b.h"
@implementation ClassA


【file-b.h】
@interface ClassB {
  ClassA *a;
}
@end


【file-b.m】
#import "file-a.h"
#import "file-b.h"
@implementation ClassB


とすると、ヘッダファイルのメンバの型が宣言されていないためエラーになる。
インクルードをヘッダファイルに移動しても、2つのヘッダファイルが、お互いのファイルをインクルードすることは許されない。

こんな時、C++などで用いられる方法を使う。
正式名称を忘れてしまったが、(たしかなんとか宣言?前述宣言だったかな・・・)とりあえずやり方だけ説明。

上記のコードに対して、クラスの宣言の前に、「このクラスの宣言を後で定義しますよ~」という宣言文を書いておく。

【file-a.h】
@class B;
@interface ClassA {
  ClassB *b;
}
@end


【file-b.h】
@class A;
@interface ClassB {
  ClassA *a;
}
@end


#importを展開した時、メンバ変数のクラスは、宣言している場所より後ろに来ているが、事前に@classで宣言しているので、コンパイルが通る。

まぁ、こういった入れ子?のクラス構造は、設計上あまり良くないという説もあるけど。。



このエントリーをはてなブックマークに追加

コメント

非公開コメント

iPhoneアプリ紹介
パズルナビ for パズドラ 2016
最強のコンボツール!
colorization-large-icon.png

スクリーンショットを読み込むとコンボを自動計算してくれるパズドラの攻略アプリです。


AirRuler
(簡易距離計)

リモートで簡単に距離を測定できるアプリ!
colorization-large-icon.png

目標地点に向けてiPhoneを傾けるだけで簡単に距離を測定できます。ゴルフの距離測定機能付きパターの代わりにも使えます。


補色残像アート
~見えない色が見えてくる~
白黒なのにカラーに見えてしまう不思議な映像を体験しよう!
colorization-large-icon.png

補色残像という目の錯覚を利用して、白黒写真がカラーに見える不思議な映像を作成できます。作成した映像は、アニメGIFに変換したり、Twitterに投稿することもできます。


タイピング革命
フリック練習はタイピング革命で!ネットランキングで盛り上がろう!
icon-l-typing.jpg

オンラインランキング上のプレイを閲覧できるリプレイ機能付き!フリック入力とローマ字入力に完全対応したタイピング練習アプリです。初心者も安心のトレーニングモード付き。

★なんと!あのAppBank様に紹介して頂きました!!
typing-sale-led.gif


簡単3Dカメラ
iPhoneで手軽に3D写真を楽しもう!平行法/交差法/アナグリフ/グラグラ3Dに対応。
icon-l-3d.jpg

2枚の写真を撮影するだけで、裸眼で立体視できる3D写真が作成できます。85円でステレオ写真もアナグリフも楽しめるのは簡単3Dカメラだけ!

プロフィール

あらきんぐ☆

Author:あらきんぐ☆
はじめまして。あらきんぐです。
4月からiPhoneを購入し、その魅力に取り付かれて、気がついたらアプリ開発の道へ!仕事でプログラム開発をしていますが、基本「動けばOK!」な適当エンジニアです。適当でもアプリは作れる!っていう事を、ブログを通じて証明していきたと思います。

最新記事
最新コメント
最新トラックバック
カテゴリ
FC2カウンター
全記事表示リンク

全ての記事を表示する

Twitter
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
アクセスランキング
[ジャンルランキング]
コンピュータ
327位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
41位
アクセスランキングを見る>>
オススメ商品
iPhone/iPodと一般オーディオを繋ぐ貴重なアイテム!
アプライドオリジナルアイテム MBB...

アプライドオリジナルアイテム MBB...
価格:3,980円(税込、送料別)

開発中級者にオススメ!「こんなことができるんだ!」と驚かされる一冊
【送料無料】iPhone...

【送料無料】iPhone...
価格:1,500円(税込、送料別)

安い!シンプル!カッコいい!
希少なiPhone対応キーボード内蔵ケース
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。