我想做的是这样的事情:
NSArray *someArray = [[NSArray alloc] initWithObjects: C_MACRO, nil];
Run Code Online (Sandbox Code Playgroud)
C_MACRO部分是一个使用#define列出一些NSStrings的外围文件,因此当我需要更改填充数组的字符串对象时,我可以方便地在一个文件中执行.到目前为止,这似乎是不可能的.但话说回来,我是新手.
有人关心开导我吗?
这样做没问题......宏只是文本替换.
/* foo.h */
#define C_MACRO @"foo", @"bar"
/* bar.m */
#import "foo.h"
NSArray * someArray = [ [ NSArray alloc ] initWithObjects: C_MACRO, nil ];
Run Code Online (Sandbox Code Playgroud)
请注意,您可以在另一个宏中使用宏.所以
#define FOO_STR @"foo"
#define BAR_STR @"bar"
#define STR_LIST FOO_STR, BAR_STR
Run Code Online (Sandbox Code Playgroud)
另一种方法是将您的字符串分配在.m文件中,并extern在公共头文件中声明.如果必须共享同一对象的唯一实例,则很方便.
/* foo.h */
extern NSString * const fooStr;
extern NSString * const barStr;
/* foo.m */
NSString * const fooStr = @"foo";
NSString * const BarStr = @"bar";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |