&引用;“未找到符号”;iPhone/iPad通用应用程序中UIPopoverController出错
在我的一个通用二进制iPhone/iPad应用程序中,用户可以在一个视图控制器中调整偏好,该视图控制器以模式显示。 在iPhone上,设置面板上显示presentModalViewController:animated:,在iPad上,我使用UIPopoverController 我花了很长时间将UIPopoverController代码与iPhone代码完全隔离。每次我为iPhone编译时,都会出现以下错误:&引用;“未找到符号”;iPhone/iPad通用应用程序中UIPopoverController出错,iphone,ipad,uipopovercontroller,Iphone,Ipad,Uipopovercontroller,在我的一个通用二进制iPhone/iPad应用程序中,用户可以在一个视图控制器中调整偏好,该视图控制器以模式显示。 在iPhone上,设置面板上显示presentModalViewController:animated:,在iPad上,我使用UIPopoverController 我花了很长时间将UIPopoverController代码与iPhone代码完全隔离。每次我为iPhone编译时,都会出现以下错误: dyld: Symbol not found: _OBJC_CLASS_$_UIPo
dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController
Referenced from: /var/mobile/Applications/CBB37F87-AA6D-47E2-823A-E259E3268A32/MyApp debug.app/MyApp
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
这当然是因为iPhone上的UIKit没有UIPopoverController类。有没有人建议如何有效地将ipadapi包含从iPhone代码中分离出来,这样我就可以实际运行我的代码了?ahhh nevermind。查看苹果的示例应用程序“TopPaid” 这有点老套,但很管用。希望有一个更优雅的解决方案
Class cls = NSClassFromString(@"UIPopoverController");
if (cls != nil)
{
UIPopoverController *aPopoverController =
[[cls alloc] initWithContentViewController:self.masterViewController];
self.popoverController = aPopoverController;
[aPopoverController release];
[popoverController presentPopoverFromBarButtonItem:barButtonItem
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
}
我也有同样的问题。当我在iPhone上运行my universal应用程序时,即使在实例化Popover之前检查“UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad”,它也会崩溃。我用这个解决了它。谢谢你的回答。这实际上是目前可用的最简单的解决方案。你也可以。我也有同样的问题,这是我的帖子,解决了我的问题。注意,
不要弱链接UIKit。这是没有必要的,它可能是有害的。请看我的回答: