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