2011-12-29 25 views
0

クラス外メソッド(またはGLKVector構造)からfloat配列のサイズを設定します。または私は基本的にプレビューでは、新しいクラス(ビュー)のメソッドを呼び出すことができますsegueを使用するはずの値を変更する、ターゲットビューに値を設定します。は、誰かがどのように次のことを達成するために私に言うことができる場合、私は思っていた

ので、私は私のプレビュー上でこれを持っているが表示:

ARViewController *temp = segue.destinationViewController; 
[temp setDrawableArray:temp]; 

をここで一時は、この構造は、私は新しいクラスの配列のサイズを設定するために使用するint型を持って、私は定義された構造です。

新しいクラスがで行くが、ヘッダーファイル内の変数の宣言に、次のとおりです。

ここ
@interface ARViewController : UIViewController <GLKViewDelegate> 
{ 
    GLKVector3 drawableArray; 
} 
- (void)setDrawableArray:(Kanji)temp; 

@end 

私はその宣言がOKであればお願いしたい、またはそれは

GLKVector3 *drawableArray; 
のようなものであるべき場合

(GLKVectorは浮動小数点の構造体なので、float drawableArrayと簡単に置き換えることができます)

クラス(.m)の実装では、次のメソッドがあります。

- (void)setDrawableArray:(Kanji)temp 
{ 
    drawableArray = GLKVector3 drawableArray[5]; 
    //Here i want to do some operations to the newly created array 

} 

もちろんこれは間違っている、私は、誰もが、私はそれをたくさんいただければ幸い私に教えてとても親切だろう場合、配列のサイズを設定する方法については考えています。

PD:クラスはそのクラス内の別の場所で使用するため、クラスはグローバルでなければなりません。

答えて

1

オブジェクト以外の配列の扱いは、Cと同じです。動的グローバル配列を宣言するには、ポインタの変数をObj-Cへのポインタを宣言するのと同じように宣言する必要がありますオブジェクト。 2番目の宣言が正しいようしかしCに単一の値と値の配列へのポインタへのポインタとの間の差は、実際には存在しない。

GLKVector3 *drawableArray; 

例えば、アレイの使用calloc(number of elements, size of each element)を割り当てるには

drawableArray = calloc(5, sizeof(GLKVector3)); 

あなたが配列で終了したら、あなたがfree()でそれを解放する必要があります:5要素の配列を作成するには、

free(drawableArray); 

を最後にチェック配列境界がない覚えているので、ときあなたはあなた自身のチェックをしなければならないか、ランダムなメモリを読み書きしなければなりません。

+0

こんにちは、この応答とdrawableArray = reallocf(drawableArray、sizeof(GLKVector3)* temp.totalpoints)の違いは何ですか?また、私はARC(自動参照カウント)を使用してXCODEを使用しています。これはオブジェクトまたはプリミティブに対してのみ機能するかどうかわかりません。ビューに空き(drawableArray)を書き込むだけで問題はないと思いますアンロードしましたか? – Pochi

+1

(1) 'realloc'は既に割り当てられているブロックのサイズを変更するためのものです - (a)サイズが変更された同じブロックを戻すか、(b)元のブロックの内容を上書きして新しいブロックを返します。オリジナルは解放されます。'reallocf'は、新しいブロックを作成するのに十分なスペースがなくても元のブロックを解放するバリアントです。詳細については、ターミナルで 'man 3 reallocf'と入力してみてください。 (2)ARC(およびGCまたは手動のalloc/retain/release)およびC'malloc'ファミリは独立しており、異なる目的で使用されています。あなたはもうメモリを必要としなくてもどこでも 'free'を置くことができます。 – CRD

関連する問題