我已经编写了一个 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
由于应用程序是通过编程而不是使用 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");
}
从那时起,他们使用不同的 AppDelegate,我检查了我的标题以确保 UISplitView 从未使用过,也不会通过 Phone 逻辑导入。
如何避免此错误,是否有更好的方法来拆分这个以编程方式创建的应用程序中的通用逻辑路径?