访问共享代表verus iPhone / iPad代理?

时间:2010-06-18 18:22:14

标签: iphone ipad delegates universal-binary

如何在通用应用程序中访问共享代理或特定于设备的“委托”?

我想在共享委托上存储属性并在那里放置基本逻辑,但是如果我想这样做,说iPhone代理上的iPhone特定内容,我会假设我需要单独访问这两个代理。它是否正确?

如何在代码中访问这些代理?

1 个答案:

答案 0 :(得分: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
}

这比使用#define更好,因为您可以编译一个通用应用程序以适用于所有iOS设备。

编辑:添加了一些内省,以防止它在iPhone OS 3.1.x及更早版本上崩溃。谢谢,巴斯蒂安。