0

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

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

说,我想在我的 ViewController 中使用数组BSViewController.h/.m。我已经包含BSParam.h在 中BSViewController.h,但我不知道还有什么要使用xBSViewController.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
4

2 回答 2

1

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

extern float x[4];
于 2013-01-27T21:08:49.480 回答
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全局变量,并且在您的应用程序的任何地方都可用,没有任何上下文/命名空间来访问它,所以这不是最佳解决方案。

为了使应用程序的其他部分可以访问全局值,您最好使用单例模式,或者为此使用类方法。

例如:

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

于 2013-01-27T21:24:04.273 回答