我想创建一个包含可从所有项目访问的静态值的类。
伪代码:
class Constants:
constant String API_URL : "http://api.service.com"
constant Integer SOME_VALUE : 7
如何使用Objective-C
?
答案 0 :(得分:13)
您的问题的答案是 extern 关键字。我将用一个例子向你解释。为项目添加目标c类,并将它们命名为Common,现在在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
全部完成,现在您可以使用对象&#34; SiteApiURL&#34;在整个项目中的任何地方你都不需要在任何地方导入任何类,即你可以直接在项目的任何地方使用这个变量。
答案 1 :(得分:9)
您可以使用预处理器来完成:
#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;
访问consts就像访问变量一样,所以字符串只是一个简单的调用。 NSNumber是基元的对象包装器,因此您需要像以下一样访问它:someValue.intValue
答案 2 :(得分:1)
您可以使用所有必需的常量Here is a sample
创建Singleton
如果您不想创建类,则可以使用静态私有变量和静态getter。
@interface
+(NSString*) getValue;
@end
@implementation
static NSString *_value = @"....";
+(NSString*) getValue {
return _value;
}
@end