Objective c 单独类中的大浮点数组常量

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

下面的数组x不是很大,但它是我的示例数组

float x[4] = {1.0f, 2.0f, 4.0f, 8.0f};
比如说,我想在我的ViewController
BSViewController.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
,但要连贯!)