Objective c 单独类中的大浮点数组常量
下面的数组x不是很大,但它是我的示例数组Objective c 单独类中的大浮点数组常量,objective-c,Objective C,下面的数组x不是很大,但它是我的示例数组 float x[4] = {1.0f, 2.0f, 4.0f, 8.0f}; 比如说,我想在我的ViewControllerBSViewController.h/.m中使用数组。我已经在BSViewController.h中包含了BSParam.h,但我不知道在BSViewController.m中使用x还能做些什么 下面是到目前为止我的类的代码,它将包含我的常量数组 // // BSParam.h #import <Foundation/F
float x[4] = {1.0f, 2.0f, 4.0f, 8.0f};
比如说,我想在我的ViewControllerBSViewController.h/.m
中使用数组。我已经在BSViewController.h
中包含了BSParam.h
,但我不知道在BSViewController.m
中使用x
还能做些什么
下面是到目前为止我的类的代码,它将包含我的常量数组
//
// BSParam.h
#import <Foundation/Foundation.h>
@interface BSParam : NSObject
@end
//
// BSParam.m
#import "BSParam.h"
@implementation BSParam
#include <stdio.h>
float x[4] = {1.0f, 2.0f, 4.0f, 8.0f};
@end
//
//BSParam.h
#进口
@接口BSParam:NSObject
@结束
//
//BSParam.m
#导入“BSParam.h”
@BSParam的实现
#包括
浮点x[4]={1.0f,2.0f,4.0f,8.0f};
@结束
您可以创建函数来返回它们,或者只需在标题中使用extern
声明:
extern float x[4];
1) 如果您想让它在您的课堂之外可用,请使用extern
关键字使其可用:
// BSParam.h
extern float x[4];
// BSParam.m
#import "BSParam.h"
float x[4] = { 1.0f, 2.0f, 4.0f, 8.0f };
// BSViewController.m
#import "BSParam.h"
- (void)dummy {
float t = x[0]; // etc.
}
2) 无论如何,这个解决方案将使变量x
成为全局变量,并且可以在应用程序中的任何位置使用,而不需要任何上下文/名称空间来访问它,因此这不是最佳解决方案
要使应用程序的其他部分可以访问全局值,最好使用单例模式,或者为此使用类方法
例如:
@interface BSParam : NSObject
+(float[4])x;
@end
@implementation BSParam
+(float[4])x {
return (float[4]){ 1.0f, 2.0f, 4.0f, 8.0f };
}
@end
因此,您可以使用
[BSParam x]
来访问数组,而不仅仅是x
,添加一些名称空间来访问此x
数组,避免与其他局部变量或其他任何东西混淆的风险。您到底遇到了什么问题?我正在尝试使用您的单例模式方法。但是当我说l=[BSParam x]代码>我收到错误消息“使用未定义的标识符'l'”。我该如何解决这个问题?添加NSArray*
没有帮助。??!为什么您第一次想使用普通的C数组,却在谈论NSArray
[BSParam x]
返回float[4]
那么为什么不使用那种类型的变量呢float*l=[BSParam x]
或float l=[BSParam x][0]
。(或者如果您想使用NSArray
使其更简单,请始终使用NSArray
,但要连贯!)