1

私は2つの目的のcメソッドを持っています。1 つは int[][] を返す必要があり、もう 1 つは int[][] をパラメーターとして受け取る必要があります。私はもともと NSMutableArrays を値として使用していましたが、現在のコードと互換性を持たせるために、このようにやり直すように言われました。これを機能させる方法がわかりません。正しいことをグーグルで調べているかどうかさえわかりません。とにかく、ここに私が今持っているものがあります。

+(int [][consantValue]) getCoefficients
{
    int coefficiennts [constantValue2][constantValue1] = { {0,1,2}, {3,4,5}, {6,7,8} };
    return coefficients;
}

returnステートメントで、「配列初期化子は初期化子リストでなければなりません」というエラーが表示されます

また、int[][]を取得して、別の方法でNSMutableArrayのNSMutableArrayに再構築する必要がありますが、誰かが最初の部分についてヒントをくれれば、2番目の部分を自分で解決できることを願っています。それについてのアドバイスもいただければ幸いです。ありがとう。

4

1 に答える 1

2

固定サイズの配列に対してこれを行う簡単な方法は、ストレージに構造体を使用することです。

typedef struct {
 int at[constantValue2][constantValue1];
} t_mon_coefficients;

そして、値で返すメソッドを宣言します。

+ (t_mon_coefficients)coefficients;

そして、パラメーターとして値渡しします。

- (void)setCoefficients:(const t_mon_coefficients)pCoefficients;

構造体が大きい場合は、参照渡しする必要があります。

// you'd use this like:
//   t_mon_coefficients coef;
//   [SomeClass getCoefficients:&coef];
+ (void)getCoefficients:(t_mon_coefficients* const)pOutCoefficients;

- (void)setCoefficients:(const t_mon_coefficients*)pCoefficients;

しかし、これを達成する方法は複数あります。

于 2013-06-18T17:37:33.360 に答える