我希望项目中的所有常量字符串都有宏,我将其分配给它。
数据库字段的格式类似于@"first_name"
,@"last_name"
等
我想要的是如下:
#define kFirstName @"first_name"
#define kLastName @"last_name" // And so on.
问题:我有超过3500个具有常量字符串的唯一字段。我希望它们中的每一个都被定义为宏。
任何更聪明的方法。我正在考虑手动复制,粘贴和放大编辑每一个。
标记为iOS
& Objective-C
,因为项目本身是iPad
应用程序。
答案 0 :(得分:2)
一般来说,定义这样的常量是iOS上的方法,所以你就走在了正确的轨道上。
你肯定不会至少打一次输入每个字段。
我会推荐两种方法中的任何一种:
使用多个.h
- 文件来定义所有常量。您可以根据头文件包含的定义对头文件进行分组(例如,UserDefinitions.h
中与用户数据相关的所有字段)。这样你至少可以确保不必在代码中的任何地方导入所有常量。使用前缀在这种情况下也会有所帮助,因此请在所有宏名称前加上它们包含的.h
- 文件,例如: kUserFirstName
以便您第一眼就知道这个常数来自
在一个(或多个)属性列表中定义所有常量。这使它们易于维护。每次使用其中一个常量时,只确保不加载属性文件,而是在第一次加载文件时缓存该文件。
答案 1 :(得分:0)
使用核心数据时,请考虑使用mogenerator为您创建常量值,您可以为所有属性和关系名称引用。
答案 2 :(得分:0)
最干净的方法是制作一对常量文件(header和main)。创建一个新类(继承自NSObject说的任何东西)调用它的常量。删除@interface和@implementation,所以你有一个空头(#import Foundation / Foundation.h除外)和空主(除了导入头部。)
然后在标题中声明每个
extern NSString *const kFirstName;
并实现每个(在.m文件中)就像这样
NSString *const kFirstName = @"Johnny";
确保将.m文件添加到目标中,然后根据需要导入标题。