【问题标题】:Importing classes from prefix.pch从 prefix.pch 导入类
【发布时间】:2014-04-04 04:43:26
【问题描述】:

我面临一个问题,目前我正在使用 xcode 5.0,当我从 prefix.pch 导入类时,它不会对 appdelegate.h 文件提供建议。但它给出了其他视图控制器的建议。我用谷歌搜索了一下,发现如果我们在 prefix.pch 中定义宏,那么就会出现这个问题。仍然在删除宏之后它没有给出关于 appdelegate 的建议。
Suggestios 意味着如果我尝试写作

 @property(strong,nonatomic) UINavigationController *navControler;

写完@property(strong,nonatomic) UINavxcode 没有给出建议。但是,如果我从 prefix.pch 文件中删除所有导入语句和宏,那么 xcode 会给出关于 appdelegate 的建议。

【问题讨论】:

  • 哪个文件没有给你回复??
  • @iPatel on RootviewAppDelegate.h 如果我尝试编写 UINvigat,那么 xcode 应该给出 UINavigationController、UiNavigationbar、UINavigationItem 等建议,但它没有显示给我。
  • 感谢您发布此信息。如果在 .pch 文件中添加#define,我在 xcode 5 中也面临同样的问题。当删除所有 #import 和 #define 时,它​​就可以工作了。
  • @Rinku:看看我的回答中包含#define的方法

标签: ios iphone objective-c xcode cocoa-touch


【解决方案1】:

从我的角度来看,我不想找到解决方法,而是想说明实际问题。

所以当你想在 .pch(预编译的头文件)中添加一些东西时,这意味着你想在你的程序实际被编译和构建之前使用文件的内容。简而言之,pch 中包含的标头充当存根代码、基本代码或可能是原封不动地使用的代码。

因此,如果您已经在 .pch 中包含 appDelegate.h 文件并在 appDelegate.h 文件中编写了一些代码,那么编译器会尝试使用 .pch 中的“appDelegate.h”作为预编译信息。并且可能导致 Xcode 后台处理的状态不确定,这不允许在已经预编译的文件中显示下拉帮助。

对我来说,.pch 中的 app delegate.h 似乎不是正确的位置。您可以在程序中的任何位置包含appDelegate.h 文件。然而,这也是糟糕的类设计方法的信号。

另外,如果你想在.pch 中添加#define 语句和其他宏,那么这不是正确的方法。正确的做法是:

  1. 制作一个简单的 .h 文件,例如 constants.h
  2. 将您的所有#defines & macros 添加到constants.h 文件中。
  3. 在您的.pch 文件中添加#import "constants.h"
  4. 这应该可以解决您的问题。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2016-04-15
    • 1970-01-01
    相关资源
    最近更新 更多