1

こんにちは私はiphone/ipadアプリケーションを開発しています。1つのheader.hを取得し、そのheader.hにすべてのViewControllersインポートをインポートしました。次に、すべてのクラスにheader.hをインポートします。

のようheader.hに含まれています

#import "loginViewController.h"

#import "signupviewController.h"

header.h必要なものすべてに#importをインポートしましたview-controllers

私がこのようにした場合、メモリの問題が発生したかどうか?

私は、C言語で、上記のようにした場合、すべての不要なコードを含める必要があることを知っています。Objective-cではどうでしょうか。

グーグルで検索しましたが、必要な答えが見つかりませんでした。

誰か教えてください。

ありがとう。

4

3 に答える 3

4

#importどのヘッダーがすでに含まれているかを追跡し、ヘッダーがコンパイル単位に複数回インポートされた場合は無視されます。

これにより、ヘッダーガードを使用する必要がなくなります。

この#import行は、初めて検出されたときにのみ名前ファイルの内容に置き換えられます。

肝心なのは、で使用するだけ#importObjective-C、ヘッダーを複数回インポートする場合でも心配する必要はありません。 #importファイルが一度だけインクルードされることを保証するため、再帰的なインクルードで問題が発生することはありません。しかし、それは#includeの場合と同じではありません。

于 2012-10-31T05:36:56.770 に答える
1

必要なヘッダーのみをインポートする必要があります。ビューコントローラ1〜10があるとします。これまでに行ったことは、すべてのビューコントローラが他のすべてのビューコントローラを必要とする場合にのみ意味があります。これはありそうにありません。

これにより、コンパイルも遅くなります。すべてのViewControllerは、すべてのViewControllerのヘッダーファイルをコンパイルすることになります。なぜその不要な詳細をすべて持ち込むのですか?

あなたがしていることはこれ以上メモリを使用しませんが、それはコンパイラ時間の無駄であり、自己文書化ではありません。各クラスに必要なものだけをインポートさせることで、実際の依存関係をよりよく確認できます。

于 2012-10-31T05:43:54.187 に答える
0

はい、次のような定数ファイルのように、このタイプのヘッダーファイルに簡単にアクセスできます 。

これはObjective-Cプロトコルテンプレート(ファイル)である私のconstant.hファイルです。このファイルをインポートするだけで、このファイルで定義したすべてのファイルとキーにアクセスできます...

#import <Foundation/Foundation.h>
#import "AppDelegate.h"
#import "yourViewControllers.h"
...etc....
/// you can also use some APIKey globally 

@protocol constant <NSObject> 

@end
于 2012-10-31T05:54:52.297 に答える