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 に答える