objective-c – 带#define的常量字符串数组 – objective c
发布时间:2020-12-16 10:31:30 所属栏目:百科 来源:网络整理
导读:我需要一个常量的字符串数组.使用#define是个好主意? 例如: #define rows [NSArray arrayWithObjects: @"NameRowA",@"NameRowB",@"NameRowC",nil]#define KEY_ROWA [columnas objectAtIndex:0]#define KEY_ROWB [columnas objectAtIndex:1]#define KEY_ROW
我需要一个常量的字符串数组.使用#define是个好主意?
例如: #define rows [NSArray arrayWithObjects: @"NameRowA",@"NameRowB",@"NameRowC",nil] #define KEY_ROWA [columnas objectAtIndex:0] #define KEY_ROWB [columnas objectAtIndex:1] #define KEY_ROWC [columnas objectAtIndex:2] 我需要访问字符串数组和该数组的元素. 我已经读过了,(我不知道是不是真的)用这种方式创建一个新的NSArray,当它被使用时,我想这个数组就被释放了,所以我认为这很好,因为你只使用那部分内存什么时候需要它. 解决方法
我认为你不想使用#define.
在您的示例中,没有使用此代码生成的常量字符串数组.在您的代码中使用每一个时间行,将分配一个新的NSArray.此外,KEY_ROWA引用了columnas,但这不在行的define中.我猜你有类似的东西 NSArray *columnas = rows; 这和之间确实没有什么区别 NSArray *columnas = [NSArray arrayWithObjects: @"NameRowA",nil]; 但第二行更为明显. KEY_ROWA也是如此 – objectAtIndex调用会更明显,宏不会给你任何东西. 我不确定你需要什么,但是如果你需要一个类中的共享常量字符串数组,你可以将它声明为 – 而不是 – 在开头,并分配一次(这是一个类变量,而不是一个实例变量).更多信息: How do I declare class-level properties in Objective-C? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |