【发布时间】:2017-10-30 22:05:03
【问题描述】:
我在 OSX El Capitan 10.11.4 上有一个用于 iOS 的简单、全新的 Objective-C 项目。我正在使用 Cocoapods,因此我使用以下 3 个 pod 创建了我的 Podfile:Firebase、UALogger 和 AFNetworking 3.0。我安装了我的 Pod,然后打开了 .xcworkspace。到目前为止一切顺利。
我有一个 View Controller 和一个子类 UITableView,在 VC 的 .m 中,我导入 Firebase、UALogger、AFNetworking 和我的 tableview:
// MyViewController.m
#import "MyTableView.h"
#import <AFNetworking.h>
#import <Firebase/Firebase.h>
#import <UALogger/UALogger.h>
...
@property (strong, nonatomic) MyTableView *tableView;
然后我转到我的 viewDidLoad 方法,并尝试执行 Firebase 的简单分配/初始化并创建我的 tableview:
// MyViewController viewDidLoad
Firebase *firebase = [[Firebase alloc] initWithUrl:@"myurl...";
self.tableView = [[MyTableView alloc] init];
会发生什么:
Firebase类不是自动建议的,所以我必须在两个位置手动输入,但是,initWithUrl...令人惊讶的是自动建议。 p>UALogger一直按预期工作 - 即,每当我开始输入UA...时,它都会建议适当的补全。AFNetworking 类不是自动建议的,我必须手动输入它们,但与 Firebase 一样,方法名称是自动建议的。
当我开始创建我的表格视图时,
MyTableView类不是自动建议的。在这一点上这并不奇怪,但值得注意的是它是我自己的文件,而不是 pod。据我所知,Apple 标准库方法都是正常自动建议的。
而且,让我更加困惑:
- 如果我在构建过程中输入 F(即,在我单击运行按钮之后,但在项目完成构建之前),
Firebase将被自动建议.但是,一旦构建完成,如果我退格然后重新输入字母 F,则不再是建议。 AFNetworking 或其他人不会发生同样的效果。
明确一点:一切正常,我的应用程序运行完美,没有任何警告和错误。
到目前为止我所做的尝试:
- 在构建设置中将
User Header Search Paths设置为$(SRCROOT)/**(以及"$(SRCROOT)/**"和$(SRCROOT)),同时将其设置为recursive - 清除
Header Search Paths(它们重置为我清除它们之前的状态) - 将
Always Search User Paths设置为Yes - 确保 Pod 公共头文件完好无损
- 确保我的文件是 Target Membership 的一部分
- 已删除派生数据
- 重新启动计算机
- 清理项目
- 重新删除派生数据
- 重新清理项目
- 重新启动计算机
- 卸载所有 pod,然后重新安装它们
- 创建第二个相同的新项目,并重复上述步骤
- 卸载 Xcode,然后重新安装
这些都不起作用,现在我在这里。
好消息是,假设这没什么大不了的——我只需要输入更多内容并用我的小手指努力工作。
坏消息是,我不知道为什么会发生这种情况,我不得不输入更多内容并用我的小手指努力工作。
如果有我尚未尝试的解决方案,请告诉我。谢谢。
【问题讨论】:
-
我投票结束这个问题,因为 Xcode 的错误报告会提交给 Apple。
-
@Avi 如果 SO 社区认为它是苹果的合法错误报告,我可以关闭它。但基于许多其他问题,这些类型的问题似乎最终要么是用户的错误配置,要么是那种性质的“可修复”的东西——尽管完全是深奥的。所以我希望是后者,但如果是前者,那么是的,你是对的。
标签: ios objective-c xcode autocomplete