Xcode 4.2, Three20 on iOS 3.0 Symbol not found: _OBJC_CLASS_$_UISplitViewController
Posted
技术标签:
【中文标题】Xcode 4.2, Three20 on iOS 3.0 Symbol not found: _OBJC_CLASS_$_UISplitViewController【英文标题】: 【发布时间】:2011-12-02 16:44:18 【问题描述】:我正在使用 Xcode 4.2 和 Three20 创建可以在所有 ios 上运行的应用程序。
当我在装有 iOS 3.0 的 iPhone 3G 上运行该应用程序时, 我在调试控制台中看到崩溃并显示以下消息:
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 中存在问题的类。 (请参阅拉取请求中的 cmets)
【讨论】:
【参考方案2】:我在 Target Membership 中取消选中 TTSplitViewController.h 和 TTSplitViewController.m。 并评论该行
//#import "Three20UI/TTSplitViewController.h"
在Three20UI.h
并从其 Target Membership 中取消选中 UISplitViewController+TTNavigator.h 和 UISplitViewController+TTNavigator.m。
并注释该行
//#import "Three20UICommon/UISplitViewController+TTNavigator.h"
在 Three20UICommon+Additions.h
我工作,但我更愿意做类似this SO 的事情,这样我以后可以使用这些类。如果有人知道该怎么做,我会很高兴。
【讨论】:
以上是关于Xcode 4.2, Three20 on iOS 3.0 Symbol not found: _OBJC_CLASS_$_UISplitViewController的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 iOS 5 SDK 的 TTThumbsViewController 时出现奇怪的白条
Xcode 没有找到 openActiveSessionWithReadPermissions: FacebookSDK for iOS 方法