【问题标题】:Getting "Expected a type" error in XCode在 XCode 中出现“预期类型”错误
【发布时间】:2014-11-18 09:00:28
【问题描述】:

我收到此错误:

/Class/GData/OAuth/GDataOAuthViewControllerTouch.m:116:22: 需要一个类型

那一行是:

 authentication:(GDataOAuthAuthentication *)auth

这段代码内部:

- (id)initWithScope:(NSString *)scope
           language:(NSString *)language
    requestTokenURL:(NSURL *)requestURL
  authorizeTokenURL:(NSURL *)authorizeURL
     accessTokenURL:(NSURL *)accessURL
     authentication:(GDataOAuthAuthentication *)auth
     appServiceName:(NSString *)keychainAppServiceName
           delegate:(id)delegate
   finishedSelector:(SEL)finishedSelector {

  NSString *nibName = [[self class] authNibName];

我是一名新手 XCode 开发人员。到目前为止,我已经创建并编译了一个基于在线课程的计算器应用程序,仅此而已。

这是一个没有被收录的库吗?

背景:之前的开发者放弃了项目,业主把项目代码发给了我。我正在尝试用新图形替换现有图形并重新编译它以支持 iOS 6,我认为我应该无需任何编码就可以做到这一点,但是当我打开项目时遇到了这个错误和许多其他错误。我有最新的 XCode。

【问题讨论】:

  • 请提供周围的代码 - 没有看到上下文很难确定确切的问题。

标签: ios xcode


【解决方案1】:

:22(以及插入符号在编辑器中的位置)告诉您错误在哪一行。在这种情况下,它告诉您它在哪里看到 GDataOAuthAuthentication 它期待一个类型。因此,隐含地,它不承认 GDataOAuthAuthentication 是一种类型。

Objective-C 仍然位于 ala C 编译单元上——每个 .m 文件都是单独编译的,然后将很多文件链接在一起。您可以使用#import(或#include,如果需要;#import 只是保证不会包含两次相同的文件)让每个单独的文件可以看到它需要的任何外部定义。

所以,要得出与 Rick 五分钟前所做的相同的结论,这是一种冗长的方法:您可能省略了必要的 #import

【讨论】:

    【解决方案2】:

    需要注意的几点:

    您是否#import 定义了 GDataOAuthAuthentication 类型的文件? (例如#import "GDataOAuthAuthentication.h")

    是否有一个名为 GDataOAuthAuthentication 的变量导致编译器认为 GDataOAuthAuthentication 是变量而不是类型?

    【讨论】:

    • 该文件具有您在顶部编写的导入语句,但我在项目文件中没有看到文件“GDataOAuthAuthentication.h”。项目中有12个文件以GDataOAuth开头,但GDataOAuthAuthentication不是其中之一。
    • 我猜这是项目文件的来源:rpetrich/gdata-objectivec-client 您可能需要将这些文件读取到您的项目中。
    猜你喜欢
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多