代码之家  ›  专栏  ›  技术社区  ›  Moshe

访问共享代表Verus iPhone/iPad代表?

  •  0
  • Moshe  · 技术社区  · 14 年前

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

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

    如何在代码中访问这些委托?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Jeff Kelley    14 年前

    我不知道你所说的特定于设备的代理是什么意思。我假设“共享委托”指的是应用程序委托。如果你需要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设备工作。

    编辑: 增加了一些自省,以防止它在iPhoneOS3.1.x和更早版本上崩溃。谢谢,巴斯蒂安。