すべてのプロジェクトからアクセス可能な静的値を含むクラスを作成したいと考えています。
擬似コード:
class Constants:
constant String API_URL : "http://api.service.com"
constant Integer SOME_VALUE : 7
どうすればこれを行うことができObjective-C
ますか?
すべてのプロジェクトからアクセス可能な静的値を含むクラスを作成したいと考えています。
擬似コード:
class Constants:
constant String API_URL : "http://api.service.com"
constant Integer SOME_VALUE : 7
どうすればこれを行うことができObjective-C
ますか?
あなたの質問に対する答えはextern keyword です。例を使って説明します。プロジェクトに目的の C クラスを追加し、 Common 、 Now in Common.h という名前を付けます。
@interface Common : NSObject
extern NSString *SiteApiURL;
@end
extern キーワードを使用して NSString クラスのインスタンスを定義したら、Common.m クラスに切り替えて、NSString (SiteApiURL) の値を初期化する必要があります。
#import "Common.h"
@implementation Common
NSString *SiteApiURL = @"http://api.service.com";
@end
次のように、project-Prefix.pch ファイル内に Common.h クラスをインポートします。
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "Common.h"
#endif
これで、オブジェクト「SiteApiURL」をプロジェクト全体のどこでも使用できるようになりました。クラスをインポートする必要はありません。つまり、この変数をプロジェクトのどこでも直接使用できます。
プリプロセッサを使用してそれを行うことができます:
#define API_URL @"http://api.service.com"
#define SOME_VALUE (7)
定義へのアクセスは簡単です。[object do:API_URL];
または、定数を使用できます
NSString * const apiURL = @"http://api.service.com";
NSNumber * const someValue = @7;
const へのアクセスは、変数へのアクセスに似ているため、文字列は単純な呼び出しになります。NSNumber はプリミティブのオブジェクト ラッパーなので、次のようにアクセスする必要があります。someValue.intValue