2011-12-02 36 views
1

我使用Xcode 4.2和Three20创建可在所有iOS上运行的应用程序。

当我运行在iPhone 3G的iOS为3.0,
我看到一个崩溃在调试控制台下面的消息应用程序:

dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController 
    Referenced from: /var/mobile/Applications/7AB01877-55F2-4A5F-A835-FF7849D6E285/Xcode4M.app/Xcode4M 
    Expected in: /System/Library/Frameworks/UIKit.framework/UIKit 

我跟着这个this SO并修复崩溃。 现在我收到另一崩溃此消息:

dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController 
    Referenced from: /var/mobile/Applications/7AB01877-55F2-4A5F-A835-FF7849D6E285/Xcode4M.app/Xcode4M 
    Expected in: /System/Library/Frameworks/UIKit.framework/UIKit 

我试图解决这个崩溃用同样的方法,但没有成功。

你知道如何解决这个问题吗?

编辑:(添加有问题的代码)

文件:TTSplitViewController

@interface TTSplitViewController : UISplitViewController 
<UISplitViewControllerDelegate, TTNavigatorRootContainer> { 
@private 
    TTNavigator* _leftNavigator; 
    TTNavigator* _rightNavigator; 
    UIBarButtonItem*  _splitViewButton; 
    id _popoverSplitController; 
} 

回答

1

是的。您可以在https://github.com/facebook/three20/pull/695/files的拉取请求中看到代码。它解决了除TTSplitViewController之外的所有3.1问题。

它采用three20的特殊功能来创建一个UIPopViewController

_popoverController = [[TTUIPopoverControllerClass() alloc] init]; 
    if (_popoverController != nil) { 
    [_popoverController setContentViewController:controller]; 
    [_popoverController setDelegate:self]; 
    } 

您仍然需要注释掉TTSplitViewController,但是这是一个已经与iOS 3.1的问题的唯一类。 (请参阅拉取请求中的注释)

0

我取消TTSplitViewController.hTTSplitViewController.m在目标成员。
和注释行

//#import "Three20UI/TTSplitViewController.h" 

Three20UI.h

enter image description here

,并取消UISplitViewController + TTNavigator.hUISplitViewController + TTNavigator.m从他们的目标会员。

和注释行

//#import "Three20UICommon/UISplitViewController+TTNavigator.h" 

Three20UICommon + Additions.h

enter image description here

我的作品,但我宁愿做这样的事情this SO,所以我可以使用这些类后来。如果有人知道如何去做,我会很高兴。

相关问题