Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有没有更聪明的方法来批量定义常量?_Ios_Objective C_Macros_Constants_Data Entry - Fatal编程技术网

Ios 有没有更聪明的方法来批量定义常量?

Ios 有没有更聪明的方法来批量定义常量?,ios,objective-c,macros,constants,data-entry,Ios,Objective C,Macros,Constants,Data Entry,我想为项目中的所有常量字符串设置宏,我被指定维护这些常量字符串 数据库字段的格式类似于@“first\u name”,@“last\u name”,等等 我想要的是: #define kFirstName @"first_name" #define kLastName @"last_name" // And so on. 问题:我有超过3500个带有常量字符串的唯一字段。我希望它们中的每一个都被定义为宏 任何更聪明的方法。我正在考虑手动复制、粘贴和编辑它们中的每一个 标记为iS> >代

我想为项目中的所有常量字符串设置宏,我被指定维护这些常量字符串

数据库字段的格式类似于
@“first\u name”
@“last\u name”
,等等

我想要的是:

#define kFirstName  @"first_name"
#define kLastName   @"last_name" // And so on.
问题:我有超过3500个带有常量字符串的唯一字段。我希望它们中的每一个都被定义为宏

任何更聪明的方法。我正在考虑手动复制、粘贴和编辑它们中的每一个


标记为iS> <代码> >代码> ObjultC/<代码>,因为项目本身是<代码> iPad 应用程序。

< P>当使用核心数据时,考虑使用它为您创建常量值,您可以引用所有的属性和关系名。所以你走对了方向

您肯定不会在每个字段中至少键入一次

我建议采用以下两种方法之一:

  • 使用多个
    .h
    -文件定义所有常量。您可以根据头文件包含的定义(例如
    UserDefinitions.h
    中与用户数据相关的所有字段)对头文件进行分组。这样,您至少可以确保不必在代码中的任何地方导入所有常量。在这种情况下,使用前缀也会很有帮助,因此在所有宏名称前加上它们所包含的
    .h
    -文件,例如
    kUserFirstName
    ,以便您第一眼就知道该常量的来源

  • 在一个(或多个)特性列表中定义所有常量。这使得它们易于维护。仅确保不在每次使用某个常量时加载属性文件,而是在第一次加载文件时缓存该文件


  • 最干净的方法是创建一对常量文件(header和main)。创建一个新类(从任何对象继承,比如说)并将其称为常量。删除@interface和@implementation,这样就有了一个空的头(除了#import Foundation/Foundation.h)和一个空的main(除了导入头)

    然后像这样在标题中声明每个

    extern NSString *const kFirstName;
    
    NSString *const kFirstName = @"Johnny";
    
    并按如下方式实现每个(在.m文件中)

    extern NSString *const kFirstName;
    
    NSString *const kFirstName = @"Johnny";
    

    确保将.m文件添加到目标中,在需要的地方导入标题。

    Nope;我想不出捷径。不确定定义它们的好处是什么,它们可能需要在SQL语句中使用。该项目使用CoreData,最终会反复使用它们中的大部分。我只是想避免人为错误。我在你的问题中没有提到核心数据的使用。不,没有这样的快捷方式,开发人员可能需要在Constants.h文件中手动输入。@RichaSharma你认为我的建议如何?这是这个想法的实现: