我是iphone
的新手,我正在尝试创建一个通用应用。
现在我正在创建一个空的应用程序。根据所有教程,通过选中universal
选项,它应该为iphone和ipad自动创建appdelegates
。
但我只能看到one appdelegate
。请告诉我如何创建两者。
最好的问候
答案 0 :(得分:3)
你真的应该只为通用应用程序使用一个AppDelegate。您可以使用它来分享您将在那里做的常见事情。您究竟需要多个AppDelegates?如果您需要针对设备类型执行某些操作(例如 - iPhone或iPad),那么您可以执行如下所示的三元表达式:
(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad)? NSLog(@“iPad”):NSLog(@“iPhone”);
答案 1 :(得分:3)
Brayden回答你几乎从不需要多个应用代表是正确的。所有委托通常都会处理应用程序启动,暂停或终止的时刻。回到iPhone运行iOS 4.0并且iPad运行iOS 3.2的日子里,代理中可能需要非常不同的代码,因为只有iOS 4.0支持多任务处理。那些日子早已过去,你的代表应该在所有设备上采取相同的行动。
是的,您有时会达到一个程度,在iPhone和iPad上您的程序必须有不同的行为。那时检查成语而不是之前。否则你只是为了没有目的而复制代码。
我最近的应用程序几乎不包含针对iPhone或iPad的特殊检查。它甚至不使用不同的XIB。相反,我的自定义视图会实现layoutSubviews
以填充可用空间。
也就是说,一旦你理解了应用代表,也许你会发现需要它们与众不同的情况。如果您完全确定您的iPhone和iPad行为会如此疯狂,您将需要:
AppDelegate
类)main.m
中,根据惯用语将新代理人的班级名称发送至UIApplicationMain
。请参阅this answer“我可以在项目中创建App Delegate文件吗?”查看main.m
的更改。