Iphone xcode未为通用应用程序创建不同的应用程序委托

Iphone xcode未为通用应用程序创建不同的应用程序委托,iphone,objective-c,xcode,ipad,Iphone,Objective C,Xcode,Ipad,我对iphone完全陌生,我正在尝试创建一个通用的应用程序 现在我正在创建一个空的应用程序。根据所有教程,通过选中universal选项,它应该为iphone和ipad自动创建appdelegates 但我只能看到一个appdelegate。请告诉我如何创建这两个 致以最诚挚的问候对于通用应用程序,您真的应该只使用一个AppDelegate。你可以用它来分享你将在那里做的普通事情。您到底需要多个AppDelegate做什么?如果您需要执行特定于某一设备类型的操作(如iPhone或iPad),则可

我对iphone完全陌生,我正在尝试创建一个通用的应用程序

现在我正在创建一个空的应用程序。根据所有教程,通过选中
universal
选项,它应该为iphone和ipad自动创建
appdelegates

但我只能看到一个appdelegate。请告诉我如何创建这两个


致以最诚挚的问候

对于通用应用程序,您真的应该只使用一个AppDelegate。你可以用它来分享你将在那里做的普通事情。您到底需要多个AppDelegate做什么?如果您需要执行特定于某一设备类型的操作(如iPhone或iPad),则可以执行如下三元表达式:


(用户界面习惯用法()==UIUserInterfaceIdiomPad)?NSLog(@“iPad”):NSLog(@“iPhone”)

对于通用应用程序,您确实应该只使用一个AppDelegate。你可以用它来分享你将在那里做的普通事情。您到底需要多个AppDelegate做什么?如果您需要执行特定于某一设备类型的操作(如iPhone或iPad),则可以执行如下三元表达式:


(用户界面习惯用法()==UIUserInterfaceIdiomPad)?NSLog(@“iPad”):NSLog(@“iPhone”)

Brayden的回答是正确的,您几乎不需要多个应用程序代理。委托通常只处理应用程序启动、暂停或终止的时刻。回到iphone运行ios4.0,ipad运行ios3.2的时代,您可能需要在代理中使用非常不同的代码,因为只有ios4.0支持多任务处理。那些日子已经过去很久了,您的代理可能应该在所有设备上都采取相同的行动

是的,有时候你的程序在iPhone和iPad上的表现肯定会有所不同。检查当时的习语,不要更早。否则,您只是毫无目的地复制代码

我最新的应用程序几乎没有针对iPhone或iPad的特殊检查。它甚至不使用不同的XIB。相反,我的自定义视图实现了
layoutSubviews
,以填充可用空间

也就是说,一旦你了解了应用程序代理,也许你会发现你需要他们与众不同。如果你绝对确信你的iPhone和iPad行为会如此迥异,你需要:

  • 手动创建新类(最好从现有的
    AppDelegate
    类继承)
  • main.m
    中,根据习惯用法将新代理的类名发送到
    UIApplicationMain

  • 请参阅“我可以在我的项目中创建应用程序代理文件吗?”以查看对
    main.m

    的更改Brayden的回答是正确的,您几乎不需要多个应用程序代理。委托通常只处理应用程序启动、暂停或终止的时刻。回到iphone运行ios4.0,ipad运行ios3.2的时代,您可能需要在代理中使用非常不同的代码,因为只有ios4.0支持多任务处理。那些日子已经过去很久了,您的代理可能应该在所有设备上都采取相同的行动

    是的,有时候你的程序在iPhone和iPad上的表现肯定会有所不同。检查当时的习语,不要更早。否则,您只是毫无目的地复制代码

    我最新的应用程序几乎没有针对iPhone或iPad的特殊检查。它甚至不使用不同的XIB。相反,我的自定义视图实现了
    layoutSubviews
    ,以填充可用空间

    也就是说,一旦你了解了应用程序代理,也许你会发现你需要他们与众不同。如果你绝对确信你的iPhone和iPad行为会如此迥异,你需要:

  • 手动创建新类(最好从现有的
    AppDelegate
    类继承)
  • main.m
    中,根据习惯用法将新代理的类名发送到
    UIApplicationMain

  • 查看“我可以在我的项目中创建应用程序代理文件吗?”查看对
    main.m

    的更改,根据教程,它显示了3个diff-AppDelegate,我在这里只得到一个,根据教程,它显示了3个diff-AppDelegate,根据示例代码,我只得到一个,我看到所有的应用程序都有两个文件夹,分别命名为iphone和ipad,代码相同,但appdelegat文件不同。类似地,上面的教程也是这样说的。请告诉我这是一个错误还是它的原样。我不需要两个AppDelegate?我所做的每个通用应用程序都基于一个AppDelegate。实际上不需要有多个代理文件来执行完全相同的操作。根据示例代码等,我看到所有应用程序都有两个名为iphone和ipad的文件夹,它们的代码相同,但appdelegat文件不同。类似地,上面的教程也是这样说的。请告诉我这是一个错误还是它的原样。我不需要两个AppDelegate?我所做的每个通用应用程序都基于一个AppDelegate。实际上不需要有多个代理文件来执行完全相同的操作。好的,最后一件事。ofc i为ipad和iphone提供了不同分辨率的图像。我在制作xib文件时检查了ipad的xib。现在,我该如何使用上述代码控制iphone和ipad图像?上面讨论的代码与XIB文件或图像无关。你不需要它。您可能唯一需要它的时候是,如果您发现自己在单个应用程序委托中进行了许多惯用语检查。如果您创建了一个通用应用程序,您应该会发现您现有的应用程序委托包含一个
    应用程序:didFinishLaunchingWithOptions:
    方法。这应该已经检查了当前的习惯用法,并为相应的视图控制器加载了XIB文件。如果没有,请编辑您的问题以包括