2011-12-02 75 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,所以我可以使用這些類後來。如果有人知道如何去做,我會很高興。

相關問題