可能的重复:
Objective C 中的常量 https://stackoverflow.com/questions/538996/constants-in-objective-c
我将一些应用程序设置存储在 NSUserDefaults 中。 NSString 用作键。问题是我需要使用这些 NSString 键在整个应用程序中访问这些设置。在应用程序的某些部分访问时,我有可能会错误输入此类字符串键。
在整个应用程序中,我有这样的说法
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ReminderSwitch"];
BOOL shouldRemind = [[NSUserDefaults standardUserDefaults] boolForKey:@"ReminderSwitch"];
如何以及在哪里声明一个全局 NSString 常量,我可以在整个应用程序中访问该常量。然后,我将能够使用该常量,而不必担心输错这些字符串键。
首先,您应该使用真正的外部 C 符号——而不是宏。这样做是这样的:
一些文件.h
extern NSString *const MONConstantString;
一些文件.m
NSString *const MONConstantString = @"MONConstantString";
请注意,如果您混合使用 ObjC 和 ObjC++,则需要指定extern "C"
对于 C++ TU——这就是为什么你会看到#define
d 导出因语言而异。
然后,您需要将常量放在与其相关的接口附近。以您的示例为主导,您可能需要一组用于应用程序首选项的接口或声明。在这种情况下,您可以将声明添加到MONAppsPreferences
header:
MONAppsPreferences.h
extern NSString *const MONApps_Pref_ReminderSwitch;
MONApps首选项.m
NSString *const MONApps_Pref_ReminderSwitch = @"MONApps_Pref_ReminderSwitch";
In use:
#import "MONAppsPreferences.h"
...
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:MONApps_Pref_ReminderSwitch];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)