xib 上的 NSUnknownKeyException

Posted

技术标签:

【中文标题】xib 上的 NSUnknownKeyException【英文标题】:NSUnknownKeyException on xib 【发布时间】:2013-06-09 14:45:02 【问题描述】:

我是 ios 编程新手。这是我的问题,我在 XCode 中有一个项目,只有一个视图。我添加了一个带有名为 news 的类的新 xib,现在我想在名为 news.xib 的第二个 xib 中的 UIWebView 中加载一个 Web 链接,但是当我运行项目时,收到此错误:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因:'[ setValue:forUndefinedKey:]: this 类与键 webpubblicita 的键值编码不兼容。'

我的代码如下:

这是news.h

 #import <UIKit/UIKit.h>
 @interface news : UIViewController
 @property (weak, nonatomic) IBOutlet UIWebView *webpubblicita;
 @end

这是news.m

#import "news.h"
@interface news ()
@end

@implementation news
@synthesize webpubblicita;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) 
        // Custom initialization
    
    return self;


- (void)viewDidLoad

    [super viewDidLoad];
    //indirizzo web da caricare
    NSString *indirizzo = @"http://www.mmm.com";
    //crea un oggetto URL
    NSURL *url = [NSURL URLWithString:indirizzo];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    // visualizza la pagina nella UIWebView
    [webpubblicita loadRequest:requestObj];

@end

【问题讨论】:

用 4 个空格格式化您的代码。 您需要检查您的故事板,尤其是与 webpubblicita 出口的连接。 标记一个断点,这将对您有所帮助。并尝试让 webpubb 变得更强大。 请开始使用 CamelCase 作为类名:)。 让属性强大并不能解决我认为的问题。 【参考方案1】:

再好好看看错误:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ViewController 0x752f950> setValue:forUndefinedKey:]:此类不符合密钥 webpubblicita 的键值编码。”

您会看到已加载类 ViewController,而不是 news 类。我认为您在 Storyboard 中指定了错误的自定义类。

【讨论】:

以上是关于xib 上的 NSUnknownKeyException的主要内容,如果未能解决你的问题,请参考以下文章

IOS xib在tableview上的简单应用(通过xib自定义cell)

低版本的xcode打开xcode8上的xib错误

以编程方式更改不同 iPad 屏幕分辨率上的 .xib 大小

静态库上的 Xib 文件

XIB 上的控件不显示怎么办

iPhone Xcode - 第二个xib视图上的导航控制器?