我正在构建一个通用应用程序,它使用适用于iPad的UISplitViewController,并且可以在任何3.0设备上工作,例如第一代iPhone / iPod touch。麻烦的是,尽管我在iPhone上运行应用程序时实际上并没有创建UISplitViewController的任何实例,但我仍然遇到了可怕的问题
dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
Referenced from: /var/mobile/Applications/.....
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
试图在第一代iPod touch上运行时,控制台出现错误。但是在iOS 4设备上一切正常。我猜测问题是我已经将UISplitViewController子类化了,并且当从.h文件中读取“@interface SplitControl:UISplitViewController {”行时它会发出扼流圈。
我将其子类化的唯一原因是覆盖shouldAutorotateToInterfaceOrientation方法。我正在以编程方式完成我的整个应用程序而没有IB。如果我使用IB创建SplitViewController并告诉它支持所有方向,它会有帮助吗?
有没有办法覆盖shouldAutorotateToInterfaceOrientation而无需继承控制器?从3.2之前的设备隐藏UISplitViewController的其他方法吗?
答案 0 :(得分:6)
您需要做的就是微弱地链接UIKit.framework。在目标的常规设置中,在“链接库”列表中,将UIKit.framework的类型更改为“Weak”而不是“Required”。