私はPHPの背景を持っていますが、私はObjective-Cを学び始めています。そのため、iPhone用のアプリケーションを開発することができます。これまでのことはかなり順調に進んでいますが、私はまだ数多くのフォーラムをグーグルやマイニングして見つけたり答えたりできなかったという疑問があります。どのようにクラスをNSStringオブジェクトからobjective-cで割り当てることができますか?
私のアプリはそれぞれ独自のタイトルバーを持つ多数のビューを作成する必要があります。これを行うためには、私のコードは、各ビューについて次のようになります。
xViewController = [ [ XViewController alloc ] init ];
xNavController = [ [ UINavigationController alloc ]
initWithRootViewController: xViewController
];
xNavController.tabBarItem = [ [ UITabBarItem alloc ]
initWithTitle: @"My Info"
image: [ UIImage imageNamed: @"my_info.png" ]
tag: 3
];
これは動作しますが、私は何をしたいこととして文字列を送信したときにナビゲーションコントローラを返却するメソッドを作成することですメッセージですから、私は各ビューごとにこれをすべて行う必要はありません。私が抱えている問題は、最初の行は文字列として渡されたクラス名に基づいてオブジェクトを割り当てる必要があるということです(つまり、メソッドに渡された文字列からXViewControllerを取得する必要があります)。文字列をクラス名として扱います。 UIApplicationMain()が文字列を使用してアプリケーションデリゲートクラスを呼び出すことができるため、可能性があります。どうしたらいいですか?
これが意味をなさない場合は申し訳ありませんが、私はまだ新しい言語を学ぶ初期段階にあります。
あなたはこれを行うことができます(下の回答で示されます)が、これがあなたのコードをどのように小さくするか、簡単にするか、エラーを起こしにくくするかはっきりしていませんか? –
文字列をパラメータとして渡す必要があるのはなぜですか?なぜクラスとしてパラメータを渡すことができないのですか? –
Stephen、私が作成した各ビューに対して上記のコードを繰り返す必要がないので、あなたが尋ねるすべてのことを行います。コードの1行で毎回正しい方法を呼び出すことができます。 クリス、クラスをパラメータとして単純に渡すことはできませんでしたが、正直言ってクラスを渡すことはできませんでした。クラス名の文字列、 'initWithTitle'メソッド、およびイメージ名 – JoBu1324