Xcode 4.2, Three20 на iOS 3.0 Символ не найден: _OBJC_CLASS _ $ _ UISplitViewController - PullRequest
1 голос
/ 02 декабря 2011

Я использую 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

Я следовал этому этоТАК и исправь сбои.Теперь я получаю еще один сбой с этим сообщением:

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;
}

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

да. Вы можете увидеть код в запросе на получение по запросу https://github.com/facebook/three20/pull/695/files. Он решает все проблемы 3.1, кроме TTSplitViewController.

он использует специальную функцию Three20 для создания UIPopViewController

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

Вам все равно нужно будет закомментировать TTSplitViewController, однако это единственный класс, имеющий проблему с iOS 3.1. (см. комментарии в запросе на выдачу)

0 голосов
/ 02 декабря 2011

Я снимаю флажок TTSplitViewController.h и TTSplitViewController.m в целевом членстве.
и прокомментируйте строку

//#import "Three20UI/TTSplitViewController.h"  

in Three20UI.h

enter image description here

и снимите отметку UISplitViewController + TTNavigator.h и UISplitViewController + TTNavigator.m от их целевого членства.

и прокомментируйте строку

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

in Three20UICommon + Additions.h

enter image description here

Я работаю, но я бы предпочел сделать что-то вроде этого SO , чтобы я мог использовать эти классы позже. Я был бы рад, если бы кто-то знал, как это сделать.

...