ios - 从 prefix.pch 导入类

标签 ios iphone objective-c xcode cocoa-touch

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

 @property(strong,nonatomic) UINavigationController *navControler;

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

enter image description here

最佳答案

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

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

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

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

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

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

希望对您有所帮助。

关于ios - 从 prefix.pch 导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853754/

相关文章:

objective-c - NSDate 的 dateWithTimeIntervalSinceNow 中的负 NSTimeInterval :

ios - 统计 JSON 文件 iOS 中的 Parents 标签

iphone - 屏幕上同时出现多个 View Controller ?

ios - 单选按钮选择时原型(prototype)单元重用

ios - 有没有办法在用户已经在 iOS 上拒绝相机访问权限后向他们询问?

ios - 如何更改多个 IBOutlet 的属性

iOS:UITableViewRowAnimationFade 无法正常工作

ios - 如何在 Coreplot 中设置 Y 轴间距

iphone - 如何检查我的 UILabel 值是否大于 0?

objective-c - 使用 [PFFFacebookUtils initializeFacebookWithApplicationLaunchOptions :launchOptions] (semaphore_wait_slow trap) 解析自 Facebook 4.0.x 以来的登录挂起