在 Objective-C 中声明静态成员变量,如 Java

2022-09-02 14:16:05

我怎样才能用像这个Java类这样的类级变量来制作一个Objective-C类?

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;

答案 1

看起来你想创建常量(因为你在你的问题中使用)。在Objective-C中,你可以使用它。finalextern

执行如下操作:

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 中使用,那么很遗憾,您只能在实现 (.m) 文件中使用。它们可以直接访问,而无需在“类名”前面加上前缀。staticstatic

例如:

static NSString *url = @"something";

我希望这有帮助。


答案 2

试试吧....

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

希望我有帮助。


推荐