Ios 无法在iPhone模拟器中显示内容,它崩溃了,但我没有收到任何错误

Ios 无法在iPhone模拟器中显示内容,它崩溃了,但我没有收到任何错误,ios,objective-c,Ios,Objective C,我试图在iPhone模拟器中显示我的代码,但实际上它不起作用,也不知道我做错了什么。我想我犯了一些基本的、初学者的错误,但这很令人沮丧。我没有收到任何错误,但在我运行应用程序后,它崩溃了,我在日志部分看到了以下几行:我正在使用故事板、最新的Xcode版本和Cocoapods Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MainViewController 0x109f330c0

我试图在iPhone模拟器中显示我的代码,但实际上它不起作用,也不知道我做错了什么。我想我犯了一些基本的、初学者的错误,但这很令人沮丧。我没有收到任何错误,但在我运行应用程序后,它崩溃了,我在日志部分看到了以下几行:我正在使用故事板、最新的Xcode版本和Cocoapods

Terminating app due to uncaught exception  'NSUnknownKeyException', reason: '[<MainViewController 0x109f330c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key overlays.'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000102005495 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000101d6499e objc_exception_throw + 43
    2   CoreFoundation                      0x0000000102089919 -[NSException raise] + 9
    3   Foundation                          0x0000000101945530 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
    4   CoreFoundation                      0x0000000102001400 -[NSArray makeObjectsPerformSelector:] + 224
    5   UIKit                               0x0000000100b6c8a6 -[UINib instantiateWithOwner:options:] + 1131
    6   UIKit                               0x0000000100a06b0c -[UIViewController _loadViewFromNibNamed:bundle:] + 245
    7   UIKit                               0x0000000100a07149 -[UIViewController loadView] + 112
    8   UIKit                               0x0000000100a073b7 -[UIViewController loadViewIfRequired] + 75
    9   UIKit                               0x0000000100a07777 -[UIViewController view] + 29
    10  UIKit                               0x000000010094796b -[UIWindow addRootViewControllerViewIfPossible] + 58
    11  UIKit                               0x0000000100947c70 -[UIWindow _setHidden:forced:] + 282
    12  UIKit                               0x0000000100950ffa -[UIWindow makeKeyAndVisible] + 51
    13  UIKit                               0x000000010090cc98 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1788
    14  UIKit                               0x0000000100910a0c -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 660
    15  UIKit                               0x0000000100921d4c -[UIApplication handleEvent:withNewEvent:] + 3189
    16  UIKit                               0x0000000100922216 -[UIApplication sendEvent:] + 79
    17  UIKit                               0x0000000100912086 _UIApplicationHandleEvent + 578
    18  GraphicsServices                    0x000000010338a71a _PurpleEventCallback + 762
    19  GraphicsServices                    0x000000010338a1e1 PurpleEventCallback + 35
    20  CoreFoundation                      0x0000000101f87679 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
    21  CoreFoundation                      0x0000000101f8744e __CFRunLoopDoSource1 + 478
    22  CoreFoundation                      0x0000000101fb0903 __CFRunLoopRun + 1939
    23  CoreFoundation                      0x0000000101fafd83 CFRunLoopRunSpecific + 467
    24  UIKit                               0x00000001009102e1 -[UIApplication _run] + 609
    25  UIKit                               0x0000000100911e33 UIApplicationMain + 1010
    26  GPUCoco                             0x0000000100001ed3 main + 115
    27  libdyld.dylib                       0x00000001040465fd start + 1
    28  ???                                 0x0000000000000001 0x0 + 1
)
表视图单元格.h

#import <UIKit/UIKit.h>
@interface TablViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *filteredImage;
@property (weak, nonatomic) IBOutlet UITextField *imageFilename;
@end

在Xcode中,当您查看情节提要时,转到右边的实用程序栏,找到连接检查器并检查断开的连接。这确实是最有可能出现问题的地方。

这是复制粘贴或编辑连接到IBOutlets的类时通常会出现的错误。插座和代码之间的连接很可能已断开,这意味着您在情节提要上创建了插座,然后手动删除了代码中的属性

例外情况实际上会告诉您出了什么问题。序列图像板中的连接正在所选视图控制器中查找覆盖属性,但由于该属性不存在,它会崩溃

所以,看看故事板上的视图控制器,试着控制并单击上面的所有元素,然后找到覆盖连接。删除它,代码就会运行


还要检查为视图控制器选择的类及其上的所有视图。您可以在Interface Builder中找到这一点。这也可能是崩溃的原因。

我认为问题出在您的cellForRowAtIndexPath中,在这行:

NSDictionary *filteredDictionary = [filterNames objectAtIndex:indexPath.row];
NSDictionary在特定索引处没有对象,而是具有键值对的对象。 将FilterAddictionary更改为NSArray,或者更改在FilterAddictionary中查找值的方式

[filteredDictionary objectForKey:somekey];

更有可能的是,你的故事板将视图连接到不再存在的出口。我注释掉了一个按钮及其方法,我认为其他所有内容都必须存在。导致崩溃的出口称为覆盖。我打赌您以前有一个名为overlays的属性,并且在不删除情节提要中的连接的情况下删除了它。是否设置了异常断点?如果未进入调试面板,请单击加号,然后添加异常断点。大部分时间都很有用。是的,我做到了。现在我从故事板上删除了按钮,它是TablViewCell.h的属性,但它再次崩溃。我没有看到断开的连接。它应该是什么样子?是否标记为红色?在参考插座中搜索“覆盖层”。您没有任何名为“overlays”的IBOutlet,但Xcode似乎不这么认为。查找哪个视图连接到“覆盖”并删除此连接。我之前已经删除了它。我已经删除了故事板中的按钮和它所连接的类中的属性。现在,在连接检查器和头文件的其他地方没有名为“overlay”的内容,但仍然崩溃。文本字段中有一个不存在的属性。我已将其删除,但再次崩溃并将我放回GPUImagePicture.m。并在日志部分中获取此信息:2014-04-23 16:50:33.551 GPUCoco[1758:60b]***断言失败在-[GPUImagePicture initWithCGImage:smoothlyScaleOutput:],/Users/szabolcsvarga/Documents/GPU/GPUCoco/Pods/GPUImage/framework/Source/iOS/GPUImagePicture.m:72 lldb如果您检查发布的文件中的断言内容,GPUImagePicture.m它提供以下信息:NSAssert widthOfImage>0&&heightOfImage>0,@传递的图像不能为空-它应该至少为1px高和宽;很明显,你发送给这个方法的图像要么是0px宽,要么是0px高,或者两者都有。检查CGImage是否创建正确。如果没有代码,我无法准确指出问题所在。
#import "TablViewCell.h"

@implementation TablViewCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)awakeFromNib
{
    // Initialization code
}

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

    // Configure the view for the selected state
}

@end
NSDictionary *filteredDictionary = [filterNames objectAtIndex:indexPath.row];
[filteredDictionary objectForKey:somekey];