0

NSMutableArray 内に変数への参照を格納する方法を探しています。ユーザーが選択した内容に基づいて変数が動的に作成されるため、この配列を単純に並べ替えて、これらの作成された変数への参照を取得できるようにしたいと考えています。念のため、iPhone プロジェクトを作成しています。ただし、次のコードを使用してこれを実行しようとすると:

for (int a = 0; a < 10; a++)
{
UIView *tempView;
[listingOfViews addObject:tempView];
}

for (int a = 0; a < [listingOfViews count]; a++)
{
[listingOfViews objectAtIndex:a] = defaultViewStructure;
}

それは私にこのエラーを与えます:「エラー:代入の左オペランドとして左辺値が必要です」

何か案は?

編集:また、このエラーが発生します:「エラー:構造体または共用体ではないメンバー 'サイズ' の要求」

私がやろうとすると

for (int a = 0; a < [listingOfViews count]; a++)
{
[listingOfViews objectAtIndex:a].size.height = ...
}
4

2 に答える 2

1

2番目の質問へ:

for (int a = 0; a < [listingOfViews count]; a++)
{
    [listingOfViews objectAtIndex:a].size.height = ...
}

ここには誤解があり(UIViewには-sizeがなく、サイズを含む-frameがあります)、Obj-C2で追加された非常に紛らわしいドット表記と構造体に到達したときのオブジェクトモデルの不幸な内訳。あなたがやろうとしていることをする方法は次のとおりです。

UIView *view = [listingOfViews objectAtIndex:a];
NSRect frame = [view frame];
frame.size.height = ...
[view setFrame:frame];

行数をわずかに凝縮する方法はありますが、NSRect構造体をフェッチして変更し、元に戻す必要があります。ほとんどのビューでは、1回の呼び出しで高さを変更することはできません。

于 2009-08-26T22:46:11.063 に答える
0

あなたが意味するのは:

[listingOfViews replaceObjectAtIndex:a withObject:defaultViewStructure];

ただし、初期化されていないtempViewポインターを配列に配置しようとすると、クラッシュします。ここで本当に何をしようとしているのですか?一歩下がって、Objective-Cの基本から始める時期かもしれないと思います。C ++のコンセプトをObjCに直接移植しようとしているようですが、動作が大きく異なります。

Objective-Cでのプログラミングから始めて、MacOSX用のCocoaプログラミングから始めたいと思うかもしれません。(後者はiPhoneではなくMacベースですが、それでも最良の出発点です。)

于 2009-08-26T22:23:12.887 に答える