私は自分のアプリケーションをiPhoneとiPad(ウィンドウベースのアプリケーション;ユニバーサル)用にゼロからユニバーサルにしました。まず、iPhoneのすべてのロジックとビューを作成しましたが、機能しました。その後、iPad用のビューを作成しました。それはうまくいきました。しかし、UISplitViewControllerまたはUIPopoverを実装すると、アプリケーションはiPhone用にビルドされなくなります。
カスタムsplitViewControllerを次のように呼び出します。
MySplitViewController *mySplitViewController = [[MySplitViewController" alloc] init];
クラス定義は次のようになります。@interfaceMySplitViewController:UISplitViewController {}
ビルド時(iPhone 3.1.3の場合)、次のエラーが発生します。
'MySplitViewController'のスーパークラスである'UISplitViewController'のインターフェイス宣言が見つかりません
Afcourse、SDK 3.1.3には、SDK3.2のすべての新機能が含まれているわけではありません。それは明らかです。そこで、次のようにクラスのインスタンスを作成してみました。
MySplitViewController *mySplitViewController = [[NSClassFromString(@"MySplitViewController") alloc] init];
それでも同じエラーが発生します。
フレームワークを弱くリンクしようとしましたが、どちらも役に立ちませんでした。
また、私が試したのは、クラスのインスタンスの作成を次のように括弧で囲んでラップすることです。
Class cls = NSClassFromString(@"UIPopoverController");
if (cls != nil) {
MySplitViewController *mySplitViewController = [[NSClassFromString(@"MySplitViewController") alloc] init];
}
両方のプラットフォームでアプリケーションを実行できるように、特定のクラスを呼び出す方法を誰かに教えてもらえますか?
ありがとう