extern
ヘッダーファイルの変数宣言の前に単語を配置すると、初期化せずにグローバル静的変数の存在が宣言されることを理解しています。extern
また、変数を含むファイルをインポートすると、クラス/ファイル名なしでそれらを参照できることも理解しています。しかし、それらとそれらの値をどこで定義するのでしょうか?
私がやろうとしているのは、iOSアプリケーションのコード全体で使用したいグローバル定数を使用して定数のクラスを作成することです。
このようにインターフェース内に配置しますか?
Example.h
#import <Foundation/Foundation.h>
@interface Constraints : NSObject
{
extern NSString * const PREFS_NAME;
}
または、このようにインターフェイスの外に配置しますか
Example.h
#import <Foundation/Foundation.h>
extern NSString * const PREFS_NAME;
@interface Constraints : NSObject
{
}
次に、実装.mファイルで、extern値をどのように初期化しますか?
このような実装領域内?
Example.m
#import "Constraints.h"
@implementation Constraints
/**PRefecences name for the application**/
const NSString * PREFS_NAME = @"MyApp_Prefs";
@end
または、次のように実装領域の外で初期化します。
Example.m
#import "Constraints.h"
/**PRefecences name for the application**/
const NSString * PREFS_NAME = @"MyApp_Prefs";
@implementation Constraints
@end
または、コンストラクターで初期値を提供しますか?+
または、その前に任意の静的スタイルメソッドがあり+(void) setAppConstraints
ます。
いくつかの組み合わせを試しましたが、「異なるタイプの「xVariable」の再定義」などのエラーが常に発生します。または、「externには初期化インターフェースがありません」(またはそのようなもの、私は忘れています)についての何か。public static final
したがって、Javaの変数と同じ役割を形成するために、それらを適切にデクレアおよび初期化する方法を知りたいと思います。
extern
また、コマンドの制限は何ですか?私はまたはができることを知っていますがextern
、どうですか?NSInteger
NSString
NSArray
extern
Objective-Cでの使用に関する多くの誤解を招く、または不完全な情報があるように思われるため、この質問をしています。答えの多くは推測のようです。私の希望は、この質問が私にとってだけでなく、の基本についての同様の質問をさらに制限するための良いリソースになることですextern
。