如何在通用应用程序中访问共享代理或特定于设备的“委托”?
我想在共享委托上存储属性并在那里放置基本逻辑,但是如果我想这样做,说iPhone代理上的iPhone特定内容,我会假设我需要单独访问这两个代理。它是否正确?
如何在代码中访问这些代理?
答案 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及更早版本上崩溃。谢谢,巴斯蒂安。