单独的类中的大型float数组常量

时间:2013-01-27 21:06:58

标签: objective-c

以下数组x不大,但它是我的示例数组。

float x[4] = {1.0f, 2.0f, 4.0f, 8.0f};

说,我想在我的ViewController BSViewController.h/.m中使用该数组。我在BSParam.h中添加了BSViewController.h,但我不知道如何在x中使用BSViewController.m

下面是我班级的代码,它将包含我的常量数组。

//
//  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

2 个答案:

答案 0 :(得分:1)

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成为全局变量,并且可以在应用程序的任何位置使用,而无需任何上下文/命名空间来访问它,因此这不是最佳解决方案。

要使应用程序的其他部分可以访问全局值,最好使用 Singleton模式,或者使用类方法。

例如:

@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数组,从而避免风险混淆其他局部变量或其他任何东西。

答案 1 :(得分:0)

您可以让函数为您返回它们,或者只在标题中使用extern声明:

extern float x[4];