0

ユニバーサルアプリで共有デリゲートまたはデバイス固有の「デリゲート」にアクセスするにはどうすればよいですか?

共有デリゲートにプロパティを保存し、そこに基本的なロジックを配置したいのですが、たとえばiPhoneデリゲートにiPhone固有のものを配置したい場合は、2つのデリゲートに別々にアクセスする必要があると思います。これは正しいです?

コードでこれらのデリゲートにアクセスするにはどうすればよいですか?

4

1 に答える 1

4

デバイス固有のデリゲートが何を意味するのかわかりません。「共有デリゲート」とは、アプリケーションデリゲートを指していると思います。iPhoneまたはiPadに固有の何かが必要な場合は、次のようにすることができます。

BOOL isiPad = NO;
if ([UIDevice instancesRespondToSelector:@selector(userInterfaceIdiom)]) {
    UIUserInterfaceIdiom idiom = [[UIDevice currentDevice] userInterfaceIdiom];

    if (idiom == UIUserInterfaceIdiomPad) {
        isiPad = YES;
    }
}

if (isiPad) {
    // iPad-specific stuff
} else {
    // iPhone-specific stuff
}

#define1つのユニバーサルアプリをコンパイルしてすべてのiOSデバイスで動作させることができるため、sを使用するよりも優れています。

編集:これがiPhoneOS3.1.x以前でクラッシュするのを防ぐためにいくつかの内省を追加しました。ありがとう、バスティアン。

于 2010-06-18T18:34:43.463 に答える