Java class?
public class test
{
public static final String tableName = "asdfas";
public static final String id_Column = "_id";
public static final String Z_ENT_Column = "Z_ENT";
}
次のように、インスタンスを作成せずにアクセスしたい:
String abc = test.tableName;
定数を作成したいようです(質問でfinal
を使用しているため)。 Objective-Cでは、extern
を使用できます。
このようなことをしてください:
1)Constantsという名前の新しいObjective-Cクラスを作成します。
2)ヘッダー(.h)ファイル内:
extern const NSString *SERVICE_URL;
3)実装(.m)ファイル:
NSString *SERVICE_URL = @"http://something/services";
4)#import "Constants.h"
を使用するクラスに追加します
5)NSString *url = SERVICE_URL;
として直接アクセス
定数を作成せず、Objective-Cでstatic
を使用するだけの場合、残念ながら実装(.m)ファイルではstatic
しか使用できません。また、クラス名にプレフィックスを付けずに直接アクセスできます。
例えば:
static NSString *url = @"something";
これがお役に立てば幸いです。
それを試してみてください....
static NSString *CellIdentifier = @"reuseStaticIdentifier";
合成プロパティを使用して直接値にアクセスできます
またはNSUserDefaultsを使用して値を保存および取得できます
説明
@interface MyClass : NSObject
+(NSString *)myFullName;
@end
実装:
#import "MyClass.h"
@implementation MyClass
static NSString *fullName = @"Hello World";
+(NSString *)myFullName{
return fullName;
}
@end
使用する:
#import "MyClass.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
NSLog(@"%@",[MyClass myFullName]); //no instance but you are getting the value.
}
@end
お役に立てば幸いです。
クラスメソッドを使用して、呼び出すことができるものにアクセスする必要がありますインスタンスを作成せずに。
@interface MyClass : NSObject
+(NSString *)myFullName;
@end
実装:
#import "MyClass.h"
@implementation MyClass
static NSString *fullName=@"anoop vaidya";
+(NSString *)myFullName;{
return fullName;
}
@end
使い方:
#import "MyClass.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
NSLog(@"%@",[MyClass myFullName]); //no instance but you are getting the value.
}
@end
そのようにすることができます:
@interface Test
{
static NSString *tableName;
}
+(NSString *) getTableName;
@end
@implementation Test
+ (NSString *)getTableName
{
return tableName;
}
@end
そして、あなたはそれを取得します:
NSString *name = [Test getTableName];
私は、次のような列挙型を使用するのが最良の方法であり、よりよく使用されると思います
enum{
GSPAYMENT_METHOD_CARD = 1,
GSPAYMENT_METHOD_CASH = 2,
GSPAYMENT_METHOD_VOID = 3
};
typedef NSUInteger PaymentMethodType;
@interface GSPaymentMethod
の直前
この方法では、.h
ファイルを含めるだけで、どこでもこれらの定数を使用できます。
例えば
[self newPayment:GSPAYMENT_METHOD_CASH]
Objective-Cにはクラス変数がありません
クラスの実装ファイルに静的NSStringを配置し、それにアクセスするためのクラスメソッドを提供することをお勧めします
@implementation MyClass
static NSString* str;