【问题标题】:setValue:forUndefinedKey: this class is not key value coding-compliant for the key [duplicate]setValue:forUndefinedKey:此类不符合键的键值编码[重复]
【发布时间】:2012-11-27 09:45:34
【问题描述】:

我正在创建一个登录来查看支持票。第一个视图是工单视图,如果您未登录,则会将您推送到登录屏幕。但是我收到了这个:

Support[3209:18e03] * 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类与键 LoginScreen 的键值编码不兼容。” *

第一次抛出调用栈: (0x1f17012 0x1634e7e 0x1f9ffb1 0x10e1711 0x1062ec8 0x10629b7 0x108d428 0x7990cc 0x1648663 0x1f1245a 0x797bcf 0x65ce37 0x65d418 0x65d648 0x65d882 0x669235 0x8683d2 0x6664f3 0x666777 0x6667b7 0x9d1fe2 0x9c3ad9 0x65e422 0x2b15 0x65f753 0x65fb2f 0x661286 0x65fe3f 0x592910 0x592895 0x5926e5 0x1edfafe 0x1edfa3d 0x1ebd7c2 0x1ebcf44 0x1ebce1b 0x22aa7e3 0x22aa668 0x57c65c 0x1f0d 0x1e35) libc++abi.dylib:终止调用抛出异常

这是我的 LoginScreen.m 代码

#import "UIAlertView+error.h"
#import "LoginScreen.h"
#import "API.h"
#include <CommonCrypto/CommonDigest.h>

#define sayWhat @"REMOVEDFORSECURITY"


@implementation LoginScreen

-(void)viewDidLoad {
    NSLog(@"Found me!");
    [super viewDidLoad];


    //focus on the username field /show keyboard
    [fldUsername becomeFirstResponder];
}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
        // Return YES for supported orientations
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }

    -(IBA

ction)btnLoginRegisterTapped:(UIButton*)sender {
    if (fldUsername.text.length < 4 || fldPassword.text.length < 4){
        [UIAlertView error:@"Enter username and password over 4 chars each."];
        return;
    }

    //very basic encryption called "salting"
    NSString* saltedPassword = [NSString stringWithFormat:@"%@%@", fldPassword.text, sayWhat];

    //prep the hashed storage
    NSString* hashedPassword = nil;
    unsigned char hashedPasswordData[CC_SHA1_DIGEST_LENGTH];

    //actually hash this
    NSData *data = [saltedPassword dataUsingEncoding: NSUTF8StringEncoding];
    if (CC_SHA1([data bytes], [data length], hashedPasswordData)){
        hashedPassword = [[NSString alloc] initWithBytes:hashedPasswordData length:sizeof(hashedPasswordData) encoding:NSASCIIStringEncoding];
        } else {
            [UIAlertView error:@"Password can't be sent"];
                return;
        }

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
        fldUsername.text, @"username",
                                   hashedPassword, @"password", nil];
    //here is the web call finally!
    [[API sharedInstance] commandWithParams:params
                               onCompletion:^(NSDictionary *json){
        //returned result
       NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];

        if([json objectForKey:@"error"]==nil && [[res objectForKey:@"userid"] intValue]> 0) {
                                       //success
        } else {
                                       //error'
        [UIAlertView error:[json objectForKey:@"error"]];
                                   }

    }];


}
@end

和 LoginScreen.h

#import <UIKit/UIKit.h>

@interface LoginScreen : UIViewController {
//the login form fields
IBOutlet UITextField* fldUsername;
IBOutlet UITextField* fldPassword;

}

//action for when either button is pressed
-(IBAction)btnLoginRegisterTapped:(id)sender;

@end


    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2844" systemVersion="12C60" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="A8c-eR-geg">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
    </dependencies>
    <scenes>
        <!--Tickets View - View Tickets-->
        <scene sceneID="aIJ-Wx-2Yy">
            <objects>
                <viewController title="View Tickets" id="T0P-Bi-31w" customClass="TicketsView" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="4zZ-I2-ltX">
                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="You Made It" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fbu-Sr-Mgf">
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                        <constraints>
                            <constraint firstItem="Fbu-Sr-Mgf" firstAttribute="top" secondItem="4zZ-I2-ltX" secondAttribute="top" constant="138" id="QBp-qM-fKP"/>
                            <constraint firstItem="Fbu-Sr-Mgf" firstAttribute="leading" secondItem="4zZ-I2-ltX" secondAttribute="leading" constant="115" id="goO-5h-RZK"/>
                        </constraints>
                    </view>
                    <navigationItem key="navigationItem" id="vu4-JX-C3v"/>
                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                    <connections>
                        <segue destination="TOB-FA-Ss4" kind="modal" identifier="ShowLogin" id="dJH-ge-8CV"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="aSa-2G-5fx" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-518" y="-841"/>
        </scene>
        <!--Login Screen - Login-->
        <scene sceneID="6iZ-QL-7ID">
            <objects>
                <viewController title="Login" id="TOB-FA-Ss4" customClass="LoginScreen" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="w9e-4U-cwC">
                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Blue Label Hosting Login" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="SuD-JI-L2T">
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NeI-zB-U8Y">
                                <constraints>
                                    <constraint firstAttribute="height" constant="31" id="BlH-cG-Jdh"/>
                                    <constraint firstAttribute="width" constant="208" id="Osb-tj-fjn"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <textInputTraits key="textInputTraits"/>
                            </textField>
                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4Fi-NX-kli">
                                <constraints>
                                    <constraint firstAttribute="height" constant="31" id="X3j-X2-ton"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
                            </textField>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5o5-83-KbW">
                                <constraints>
                                    <constraint firstAttribute="height" constant="36" id="Afu-6h-uru"/>
                                    <constraint firstAttribute="width" constant="161" id="Ef5-df-Jmp"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                <state key="normal" title="Login">
                                    <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                                </state>
                                <state key="highlighted">
                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                </state>
                                <connections>
                                    <action selector="btnLoginRegisterTapped:" destination="w9e-4U-cwC" eventType="touchUpInside" id="Wgb-L8-sAJ"/>
                                </connections>
                            </button>
                        </subviews>
                        <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="NeI-zB-U8Y" firstAttribute="top" secondItem="SuD-JI-L2T" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="0Pv-zM-WId"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="top" secondItem="NeI-zB-U8Y" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="2Sw-m8-LND"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="trailing" secondItem="NeI-zB-U8Y" secondAttribute="trailing" type="default" id="88O-VQ-qut"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="centerX" secondItem="NeI-zB-U8Y" secondAttribute="centerX" type="default" id="Qu9-PG-YWz"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="centerX" secondItem="5o5-83-KbW" secondAttribute="centerX" type="default" id="RAm-sI-Z3u"/>
                            <constraint firstItem="5o5-83-KbW" firstAttribute="top" secondItem="w9e-4U-cwC" secondAttribute="top" constant="128" id="UTG-NS-bx4"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="top" secondItem="w9e-4U-cwC" secondAttribute="top" constant="20" symbolic="YES" type="default" id="iaC-Ex-EBa"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="centerX" secondItem="w9e-4U-cwC" secondAttribute="centerX" type="default" id="oWP-Gp-Pi5"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="leading" secondItem="NeI-zB-U8Y" secondAttribute="leading" type="default" id="oxE-WD-fVc"/>
                        </constraints>
                        <connections>
                            <outlet property="fldPassword" destination="4Fi-NX-kli" id="4eb-YW-8YI"/>
                            <outlet property="fldUsername" destination="NeI-zB-U8Y" id="Ds4-XS-iqW"/>
                        </connections>
                    </view>
                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="FL3-Yk-JbH" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-84" y="-349"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="fJ6-wq-4Tj">
            <objects>
                <navigationController id="A8c-eR-geg" sceneMemberID="viewController">
                    <toolbarItems/>
                    <navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="bnk-dD-E4j">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="T0P-Bi-31w" kind="relationship" relationship="rootViewController" id="3jA-WY-c3V"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="lTO-TW-owb" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-971" y="-910"/>
        </scene>
    </scenes>
    <classes>
        <class className="LoginScreen" superclassName="UIViewController">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/LoginScreen.h"/>
            <relationships>
                <relationship kind="action" name="btnLoginRegisterTapped:"/>
                <relationship kind="outlet" name="fldPassword" candidateClass="UITextField"/>
                <relationship kind="outlet" name="fldUsername" candidateClass="UITextField"/>
            </relationships>
        </class>
        <class className="NSLayoutConstraint" superclassName="NSObject">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
        </class>
        <class className="TicketsView" superclassName="UIViewController">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/TicketsView.h"/>
        </class>
    </classes>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4"/>
    </simulatedMetricsContainer>
</document>

【问题讨论】:

  • 确保在您的 XIB 中设置了 LoginScreen 插座
  • 这个错误发生在哪里。似乎它可能在票证视图控制器中。如果是这样,您应该发布该代码而不是这个。
  • 这种无法解释的异常通常是由 unckean xib 文件引起的。在 xcode 中打开 xib,单击 ViewOwner 并查看标有“!”的 rhe 输出
  • 如果它对我有用,我会的。它没有,所以我不会。
  • 就我而言。我没有丢失的网点。 Shift + command + K 解决了我的问题。我清理了我的项目并重建了。

标签: objective-c xcode cocoa-touch cocoa


【解决方案1】:

我遇到了这个问题,因为我没有使用 StoryBorad,并且在 项目属性 -> 部署信息 -> 主界面是主 Xib 的名称。

我删除了主界面中的值并解决了问题。

【讨论】:

  • 我脑子里乱七八糟,我也做了这个,删除它,一切正常我在 6.1 上
【解决方案2】:

转到 Xcode 的断点选项卡。使用底部的按钮添加异常断点。现在您将看到调用 setValue:forKey: 和相关堆栈的代码。运气好的话,你会直接指出问题的根源。

奇怪的是您的课程是 LoginScreen,但错误是说有人使用“LoginScreen”作为键。检查 LoginScreen.m 是否是您的目标的一部分。


脚注:对于 Swift,如果您更改类的名称(因此,您在代码中的任何地方都重命名它),就会出现一个常见问题。 Storyboard 在这方面遇到了困难,您通常必须重新拖动任何涉及该类的连接。特别是,重新输入在右侧 IdentityInspector 选项卡中使用的类的名称。 (在图片示例中,我故意拼错了类名。但是当你重命名一个类时,经常会发生同样的事情;即使在 IdentityInspector 中看起来正确,你也需要再次输入名称;它会正确自动完成,一切顺利。)

【讨论】:

  • 我之前输入了新的类名,但它不起作用,所以我拉下选择器并通过鼠标单击选择该类(当然是相同的)。现在可以了。
  • 天啊!!太感谢了!!几天来我一直在努力解决这个问题,而你的脚注帮助了我。我重命名了类,并且在身份检查器中一切看起来都正确,但正如你所说,我必须在 IdentityInspector 中重新输入类的名称并且一切正常。浪费了这么多时间调试和寻找这个问题
  • 谢谢,这让我发疯了。您对异常断点的建议和重新输入表格单元格的名称都帮助我找到并解决了问题。 iOS 中的情节提要非常非常挑剔。
  • 异常断点表明我的 VC 的类“不存在”。什么?!原来 VC 的实现文件的“目标成员资格”(在 Xcode 窗口 > 实用程序窗格 > 文件检查器中)没有被检查。检查以将文件添加到当前目标并且一切正常。
【解决方案3】:

我遇到了这个,查看了所有内容,没有发现任何问题,但最终记得尝试 Clean 并清除 Derived Data 并解决了它!

【讨论】:

  • 我遇到了同样的错误,并且修复了它(感谢 Chad),因此我认为这是一个非常有效的潜在解决方案。
  • 清理派生数据修复它
【解决方案4】:

这个错误是别的东西!

这是我修复它的方法。我正在使用 xcode 版本 6.1.1 并使用 swift。每次我的应用程序尝试执行 segue 以跳转到下一个屏幕时,我都会收到此错误。这就是我所做的。

  1. 检查按钮是否连接到正确的操作。(这不是问题,但仍然可以检查)
  2. 检查按钮是否没有您可能错误创建的任何其他操作或出口。 (这不是问题,但仍然可以检查)
  3. 检查日志并确保 NEXT SCREEN 中的所有按钮都具有正确的操作,如果有任何转义,请确保它们具有唯一标识符。 (这是问题)
    • 其中一个 segue 没有唯一标识符
    • 其中一个按钮有一个动作和两个出口,这是我错误地创建的。

删除任何额外的出口,并确保您转到下一个屏幕的部分具有唯一标识符。

干杯,

【讨论】:

  • 它是#3。在下一个视图控制器中存在数量问题。在异常上添加断点会有所帮助。
【解决方案5】:

因为没有2个功能

@implementation CellTableView

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    return [self init];
}
- (void)awakeFromNib {
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
}

@end

【讨论】:

    【解决方案6】:

    对我来说,我将注册 nib 的集合视图标题的调用切换为注册类。这样就解决了。

    【讨论】:

      【解决方案7】:

      在我的情况下,我在 .h 中有 IBOutlet UILabel *description,它带有黄色 /!\ - “不会合成”,我记得。不知道它是什么,为什么只有这个标签。

      但是我遇到了类似上面的崩溃和错误。删除 *description 并重新创建 *description2。结果没有崩溃。

      【讨论】:

        【解决方案8】:

        这通常意味着有东西试图访问 @property "givenName"

        如果您使用Interface Builder(IB) 做某事,通常的原因是您:

        1. 从类中删除了该属性,但尚未删除 尚未在 IB 中进行联播
        2. 或:您将文件的所有者对象设置为错误的类(检查 属性 - 根据您使用的 xcode 版本而有所不同
          • 查找其设置为的类名称。您可能复制/粘贴了一个 NIB 文件,并且没有更改 NIB 中的此字段),并且您已经连接 该课程的出口,但您的实际文件所有者是什么 不一样的

        【讨论】:

          【解决方案9】:

          如果您有不同的 storybord 文件,并且如果您的头文件中有出口引用而没有创建出口,那么您只需通过右键单击文件所有者来删除连接。

          文件所有者->右键单击->删除那里不需要的连接。

          仔细阅读以获得清晰的解释。 What does this mean? "'NSUnknownKeyException', reason: … this class is not key value coding-compliant for the key X"

          【讨论】:

            【解决方案10】:

            我遇到了类似的问题,但我使用 initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 明确地使用类的名称作为传递的字符串(是的,格式不好!)。

            我最终删除并使用稍微不同的名称重新创建了视图控制器,但忽略了更改方法中指定的字符串,因此我的旧版本仍在使用 - 即使它在垃圾箱中!

            我可能会按照以下建议使用这种结构:Is passing two nil paramters to initWithNibName:bundle: method bad practice (i.e. unsafe or slower)?

            - (id)init
            {
                [super initWithNibName:@"MyNib" bundle:nil];
                ... typical initialization ...
                return self;
            }
            
            - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
            {
                return [self init];
            }
            

            希望这对某人有所帮助!

            【讨论】:

            • 您也可以使用NSStringFromClass([self class]) 而不是@"MyNib" 以避免每次要使用此构造时都重新键入类名。
            【解决方案11】:

            这发生在以下场景中:

            我在我的工作区中创建了第二个项目,为模板选择了“单一视图应用程序”。

            然后我转到 Interface Builder(主 iPhone 故事板),将 UISwitch 添加到主视图,并通过 IBOutletIBAction (-valueChanged:) 将其连接到视图控制器。

            在启动时,应用程序崩溃,但问题中提到了异常。如果我从视图中移除开关,它就可以工作。

            经过仔细检查,我意识到我将连接拖到同一工作区中另一个项目的ViewController.h 中。 Interface Builder 的助手编辑器的“自动”集(又名 Tuxedo 胸部图标)选择了错误的文件作为“对应”文件(具有正确的名称)。

            希望这对某人有所帮助,特别是因为“单视图应用程序”和“SpriteKit 游戏”项目模板(在我的例子中)都创建了一个名为“ViewController”的默认视图控制器类。

            【讨论】:

              【解决方案12】:

              我今天遇到了同样的问题。正如in this answer 所建议的那样,问题是一个不干净的xib。在我的情况下,不干净的 xib 是更新 xib 的结果,该 xib 由与其关联的视图控制器以外的其他东西加载。

              Xcode 让我创建和填充一个新的 outlet 并将它连接到文件的所有者,即使我明确地将它连接到正确的视图控制器的源。下面是 Xcode 生成的代码:

                  <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginViewController"]]>
                      <connections>
                          <outlet property="hostLabel" destination="W4x-T2-Mcm" id="c3E-1U-sVf"/>
                      </connections>
                  </placeholder>
              

              当我运行我的应用程序时,它因同样的not key value coding-compliant 错误而崩溃。为了纠正这个问题,我从 Interface Builder 中的 File's Owner 中删除了插座,并将其显式连接到左侧轮廓上的视图控制器对象,而不是辅助编辑器中的代码。

              【讨论】:

                【解决方案13】:

                此类莫名其妙的异常通常是由不干净的xib 文件造成的。 在 xcode 中打开xib,选择 File's Owner 并单击“Connection Inspector”(右上箭头),一次查看所有出口。 查找!s,它表示缺少插座。

                【讨论】:

                • 到目前为止还没有。我使用的是故事板,而不是单独的 xib。我改变了它,所以登录屏幕是第一个加载的视图,只是为了测试,仍然是同样的错误。我编辑了我的帖子以显示故事板的 XML。
                • @user1890328 您的 XML 未显示在问题中
                • @GabrielePetronella 我继续更新它,你现在应该可以看到它了。格雷厄姆我会尽快知道并报告。感谢大家到目前为止的帮助!
                • 亚历克斯维恩我爱你。对于其他可能被卡住的人,如果你去storyboard>view_you_are_crashing_on,你可以看到所有的连接,然后点击连接检查器,这是屏幕右上角的小右箭头。我的问题是我删除了对象/更改了它们的名称,但连接仍然存在,使用旧名称。
                • 如果您使用自定义类备份您的视图,还请确保不要将其与File's Owner 链接,而是与您的视图的根链接,例如你的自定义UICollectionViewCell
                【解决方案14】:

                您可能正在为 alertView 中的键设置值,这是不允许的。在这种情况下,关键是LoginScreen。我没有看到对setValue() 的任何调用,所以我认为它在代码中的其他位置。

                【讨论】:

                  【解决方案15】:

                  我在创建自定义 TableCell 时遇到了类似的问题。问题是我将 FileOwner 设置为我的自定义类,然后连接了插座。

                  FileOwner 应该保持 NSObject。

                  【讨论】:

                    【解决方案16】:

                    我在所有地方的 PickerView 上都得到了这个。错误消息在消息的第一条用“queuePicker”命名问题。这是由以前的引用插座引起的,在我添加一个组件并将原始 NSArray 重命名为 queuePicker 以外的其他内容后,该插座不再有效。 CNTL+单击您的 StoryBoard 对象为您提供连接。我在 Reference Outlets 中单击 queuePicker 的 ViewController 旁边的“x”,建立了新的连接,并且 viola,不再崩溃。

                    【讨论】:

                      【解决方案17】:

                      在 Interface Builder 中检查您的连接。 您可能指的是不存在的IBOutletIBAction

                      【讨论】:

                        【解决方案18】:

                        我不得不删除所有对象并重新添加它们。这似乎已经解决了这个问题。

                        【讨论】:

                        • 你应该接受亚历克斯的回答。这是修复它的更好和正确的方法。
                        • 实际上这是解决我问题的唯一答案,因为我的 xib 中没有任何可见的错误!
                        【解决方案19】:

                        谢谢各位。我通过您的帮助解决了这个问题。所以,我希望这个截图对有同样问题的人有所帮助。

                        【讨论】:

                          【解决方案20】:

                          我在创建自定义视图类时遇到了类似的错误,那是因为不知何故,其中一个插座在 XIB 文件中连接了两次(我想我最初控制将控制直接拖到代码中,但后一个控制拖再次来自文件的所有者)。我打开了 XIB 文件并删除了其中一个,之后一切正常。希望这会有所帮助。

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2012-04-26
                            • 1970-01-01
                            • 2017-10-15
                            • 1970-01-01
                            • 2017-09-17
                            相关资源
                            最近更新 更多