在基于选项卡的应用程序中链接到IBOutlet时,Iphone-SDK“无法读取符号错误”

时间:2009-04-02 20:07:21

标签: iphone

我构建了一个非常简单的基于选项卡的应用程序,其中包含2个选项卡,每个选项卡都与自己的视图控

直到目前为止。然后我在第二个视图控制器上创建一个简单的IBOutlet,如此

#import <UIKit/UIKit.h>


@interface bViewController : UIViewController {
    IBOutlet UITextField *aField;
}
@property (nonatomic, retain) UITextField *aField;
@end

然后我在我的.m文件中合成它,然后我进入我的xib,将文本字段拖到视图上,然后将文件所有者设置为'aField'。

到目前为止非常教科书。

它构建,但是当我运行它并选择第二个选项卡(显示我已经链接UITextfield IBOutlet的视图)时,它会抛出此错误。

warning: Unable to read symbols for "/System/Library/Frameworks/UIKit.framework/UIKit" (file not found).
warning: Unable to read symbols from "UIKit" (not yet mapped into memory).
warning: Unable to read symbols for "/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics" (file not found).
warning: Unable to read symbols from "CoreGraphics" (not yet mapped into memory).

这是非常奇怪的,因为这最近才开始发生。有线索吗?

更新

我开始怀疑配置错误而不是语法错误,因为这些是我为了演示问题而创建的剥离示例。仅当我创建基于选项卡的应用程序时,此操作才会失败

如果我在基于视图的应用程序中执行完全相同的操作,它可以正常工作。

3 个答案:

答案 0 :(得分:1)

好的,经典的n00b错误。显然,错误与链接到IBOutlet无关。问题源于以下事实:当使用基于选项卡的应用程序时,您必须在视图XIB和选项卡条本身上设置viewController类。

答案 1 :(得分:0)

插座有效吗?确保你的二进制链接到UIKit和CoreGraphics框架。仅在添加第二个插座时才会出现此错误吗?如果您正在使用版本控制,是否可以返回并确定问题何时开始?

我确实注意到了一件事,我不确定这是否能解决您的问题,但您通常会将IBOutlet标记放在属性上,如下所示:

@property (nonatomic, retain) IBOutlet UITextField *aField;

在尝试将值分配给实例变量与属性之间时,NIB加载系统可能会感到困惑。

答案 2 :(得分:0)

这是一个很长的镜头,但也许您以某种方式将SDK切换到Mac OS X SDK而不是iPhone SDK。我相信如果您在Xcode中获取项目信息,则可以使用该设置 - 确保基本SDK是iPhone SDK。