【问题标题】:Why am I getting these errors when trying to add a UIWebView to this ViewController header file?为什么在尝试将 UIWebView 添加到此 ViewController 头文件时出现这些错误?
【发布时间】:2011-09-29 14:54:31
【问题描述】:

我按照这里的步骤操作:http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/

以下是将 Web 应用程序转变为原生应用程序的基本步骤:

  1. 打开 XCode。
  2. 创建一个新的“基于视图的应用程序”iPhone 项目。
  3. 将 Web 应用程序的文件移动到 XCode 中的 Resources 文件夹中, 但去掉缓存清单。 (你不想要清单 搞砸了,因为现在一切都是本地的。)
  4. 在@interface 内创建一个新的实例变量webView ViewController 头文件:IBOutlet UIWebView* webView ; // IBOutlet 表示它对 Interface Builder 可见。
  5. 并创建一个属性:@property (nonatomic, retain) UIWebView *网络视图;

这是我目前所拥有的 (ViewController.h):

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

    IBOutlet UIWebView* webView;

@property (nonatomic, retain) UIWebView *webView;
@end

但是在第 4 步中,我的 ViewController 头文件中有两个错误:

"不能在@interface 或@protocol 中声明变量"

"iboutlet 属性只能应用于实例变量或 属性”

那么我做错了什么,还是那个网站教程错了?

注意:我下载了他为 iPhone 提供的示例项目,它工作正常,但我正在按照教程进行操作,以便制作 iPad 版本。

我在 XCode 4 中,错误显示我是使用 iOS 5 还是 iOS 4.3 似乎没有区别。

【问题讨论】:

    标签: objective-c ipad uiwebview


    【解决方案1】:

    你缺少几个花括号:

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController {
        UIWebView *webView;
    }
    
    @property (nonatomic, retain) IBOutlet UIWebView *webView;
    
    @end
    

    【讨论】:

    • 您还需要将 IBOutlet 添加到您的财产声明中。
    • 呸,我还以为它遗漏了什么……我想我对 XCode 的期望太高了,谢谢。
    • @Bill:是的,我也注意到了。 OP 链接的教程是典型的、不完整且具有误导性的 iPhone 教程。
    • @Ryan: IBOutlet 通常在属性而不是实例变量声明中。我编辑了我的答案以显示这一点。
    • 是的,刚刚回到线程,在它说等待 7 分钟之前 ;)
    【解决方案2】:

    我想你忘记了括号;尝试将您的代码更改为

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController {
    
        IBOutlet UIWebView* webView;
    }
    
    @property (nonatomic, retain) UIWebView *webView;
    @end
    

    【讨论】:

      猜你喜欢
      • 2022-09-23
      • 2014-03-10
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      相关资源
      最近更新 更多