2017-04-19 18 views
1

私は、このように私は何かについて確認してたい、Objective-Cでのインポートについて少し混乱してしまった:円番号#import、それは間違っていましたか?

私はああとアム、BhのとBmのを持って、私は現在アム#import "B.h"を追加し、Bhの中#import "A.h"、動作していますが、警告もエラーもありませんが、これは問題を引き起こしますか?私はA.hにおけるプロトコルと列挙型を宣言し、B.h、@classを支援するため

そのおかげでキャッチすることはできませんそれを使用するので、私は@classを使用傾ける

理由です。

+0

[Circular #import Reference](http://stackoverflow.com/questions/12994286/circular-import-reference)の可能な複製 –

+0

このような前方宣言を使用することができます。 :) –

+0

@ShamasS私は '@ class'について知っていましたが、プロトコルと宣言を宣言し、それを使用してBhを' @ class'で使用することはできません。おそらくそれ以外の質問 – Tj3n

答えて

-1

Cの方法を試しましたか?

#ifndef MYCLASS 
#define MYCLASS 
#import "A.h" 
#endif 
+0

私が '#define MYCLASS MYCLASS'に変更したことを確認することです。これは動作するだけですが、これとは何か異なっていますか? – Tj3n

+0

同じクラスの複数の定義を避けるだけです。いつか、複数の依存関係を持つ複数のインポートは、実行時にアプリケーションがクラッシュするか、コンパイル前にエラーが発生することがあります –

+0

Mineは全く問題はありません。問題になるかもしれないが、これは '.m'で、それは何か違うのだろうか? – Tj3n

0

の#importを使用すると、再帰的に問題が含まれていませんように、ファイルは今までに一度だけ含まれていることを保証します。あなたは、それはあまり問題のファイルを再帰的にお互いを追加した場合に行います。#importを使用している場合しかし、ほとんどのまともな ヘッダファイルはWhat is the difference between #import and #include in Objective-C? からとにかく

これから身を守ります。

関連する問題