我已经编写了一个iPhone和iPad通用应用程序,可以在Xcode上的iPad模拟器中正常运行,但我现在想测试iPhone的功能.我似乎无法使用此代码运行iPhone模拟器,因为它始终默认为iPad?
相反,我试图在设备上运行,当它开始运行时,我收到以下错误:
dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
Referenced from: /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/Test
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit in /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/TEST
Run Code Online (Sandbox Code Playgroud)
由于App是以编程方式而不是使用XIB构建的,因此我使用main.m方法中的以下行拆分了2个设备逻辑:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Pad");
}
else
{
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Phone");
}
Run Code Online (Sandbox Code Playgroud)
从那时起,他们使用不同的AppDelegates,我已经检查了我的标题,以确保永远不会使用UISplitView,也不会通过Phone逻辑导入.
如何避免此错误,是否有更好的方法在这个以编程方式创建的应用程序中拆分通用逻辑路径?