如何在通用应用程序中访问共享委托或设备特定的“委托”?
我想在共享委托上存储属性并将基本逻辑放在那里,但如果我想做,比如在 iPhone 委托上说 iPhone 特定的东西,我会假设我需要分别访问这两个委托。这个对吗?
如何在代码中访问这些委托?
如何在通用应用程序中访问共享委托或设备特定的“委托”?
我想在共享委托上存储属性并将基本逻辑放在那里,但如果我想做,比如在 iPhone 委托上说 iPhone 特定的东西,我会假设我需要分别访问这两个委托。这个对吗?
如何在代码中访问这些委托?
我不确定您所说的特定于设备的代表是什么意思。我假设通过“共享委托”您指的是您的应用程序委托。如果你需要特定于 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
s 更好,因为您可以编译一个通用应用程序以在所有 iOS 设备上工作。
编辑:添加了一些内省以防止它在 iPhone OS 3.1.x 及更早版本上崩溃。谢谢,巴斯蒂安。