0

NSStringの形式でユーザーが入力した名前を使用して、クラスの新しいインスタンスを作成したいと思います。NSClassFromStringを見たことがありますが、取得できません。私の最終目標は、ユーザーに経費の名前を入力させ、NSString変数に格納されているその入力された名前を使用して、クラスの新しいインスタンスを作成することです。次に、ユーザーは、新しいオブジェクトのインスタンス変数を設定するいくつかの項目を入力します。

これはすべてループ内にあり、ユーザーは必要な数の新しいオブジェクトを作成でき、オブジェクトは後で保存して使用するために配列に保存されます。しかし、クラスの新しいインスタンスを動的に作成する方法に固執しています。

4

1 に答える 1

0

どんなオブジェクトを作ろうとしていますか?常に同じ種類のオブジェクトを作成しますか、それともユーザーにオブジェクトタイプを入力させて、そのタイプのオブジェクトを作成させますか?

常に同じ種類のオブジェクトを作成し、そのプロパティの1つをユーザーが入力した文字列に設定する場合は、簡単です。

UITextFieldとボタンをViewControllerに追加します。ボタンのアクションメソッドで、テキストフィールドからテキスト値を取得し、それを使用してオブジェクトにテキストを設定します。

MyObject *anObject = [[MyObject alloc] init];
anObject.stringProperty = theTextField.text;

ユーザーがクラス名を入力できるようにする場合は、入力しないでください。それはあまりにも壊れやすいです。ユーザーは、アプリが予期しない動作をしたり、クラッシュしたりする可能性のあるクラスのクラス名を簡単に入力できます。そのためにNSClassFromStringを使用しますが、ユーザーにクラス名を指定させるのは非常に悪い考えです。しないでください。

代わりに、ユーザーにさまざまなオプションのリストから選択してもらい(ボタン、テーブルビュー、ステッパーなどを使用)、switchステートメントを使用して要求されたタイプの新しいオブジェクトを作成します。サポートされているタイプのオブジェクトごとに、ユーザーが作成できるケースがあります。

于 2012-06-23T14:21:44.983 に答える