0

我昨天在这里问了一个关于如何在框架中调试的问题。

我有一个networkLib,还有一个usingLibDemo项目。

答案建议我networkLib加入usingLibDemo,以便我可以在源代码中进行调试。

现在我试过了:

  1. 从 中输出一个框架networkLib,并在 中使用该框架 usingLibDemo。有用。
  2. 复制networkLibinto的所有源代码usingLibDemo,它再次工作。
  3. networkLib项目拖入usingLibDemo项目中,在 中设置 ,Header Search Paths在中Build Settings设置。它失败。Target DependenciesBuild Phases

在 #3 情况下,仅使用标头时项目构建成功。例如,我只使用协议:

@interface ViewController : UIViewController <LoginUIDelegate>

@property (retain, nonatomic) IBOutlet UITextField *usernameText;
@property (retain, nonatomic) IBOutlet UITextField *passwordText;
@property (retain, nonatomic) IBOutlet UIButton *loginButton;

- (IBAction)loginBtnDidClick:(id)sender;

@end

但是当我使用.m文件中的代码时:

[[LoginBizLogic sharedInstance] loginWithUsername:username password:password tokenLogin:NO uiDelegate:self];

构建失败,如下所示:

在此处输入图像描述

LoginBizLogic的@interface以及LoginUIDelegate是在文件中定义的LoginBizLogic.h,但@implementation在“LoginBizLogic.m”文件中。

我认为LoginBizLogic没有正确链接,与其他类相同,但我无法弄清楚问题出在哪里,或者在哪里配置。

非常感谢。

4

2 回答 2

2

阅读此架构 i386 的未定义符号的答案:_OBJC_CLASS_$_SKPSMTPMessage”,引用自:错误

如果您的类的 .m 文件未在目标的“构建阶段”选项卡的“编译源”步骤下列出,则可能会出现此类错误。通常 Xcode 会为您执行此操作,但有时它会丢失绘图并且您需要手动添加 .m 文件。

在你的情况下:

TargetSettings -> Build Phases -> Compile Sources -> add your .m file  ->Build and Run 
于 2013-03-28T05:30:18.860 回答
1

谢谢你,@iPatel

从你的回答我知道问题出在哪里:

在此处输入图像描述

以及如何显式编译导入的文件,但networkLib要选择的文件太多:

在此处输入图像描述

选择135个项目很烦人,我已经设置了依赖:

在此处输入图像描述

在此处输入图像描述

所以我想在编译之前usingLibDemonetworkLib已经编译好了。

编译好了,为什么找不到符号?--------> 没有链接!我导入库进行链接:

在此处输入图像描述

就是这样!再次感谢。

于 2013-03-28T05:59:42.133 回答