objective-c - “发送到实例的无法识别的选择器”?

标签 objective-c ios xcode

我是 Objective C 的新手,无法理解为什么会出现此错误。我检查了其他类似的问题,但未能解决问题。

错误是“-[NSConcreteMutableData base64Decoded]:发送到实例 0x6e15610 的无法识别的选择器”

这是问题代码的一个片段,其中对 base64Decoded 的调用导致了崩溃。

#import "DDData.h"

- (NSString *)decodeBase64:(NSString *)input
{
    NSData* dataDecoded = [[input dataUsingEncoding:NSUTF8StringEncoding] base64Decoded];    
    return [NSString stringWithUTF8String:[dataDecoded bytes]];
}

在 DDData.h 中:

#import <Foundation/Foundation.h>

@interface NSData (DDData)

- (NSData *)base64Decoded;

@end

和DDData.m:

@implementation NSData (DDData)

- (NSData *)base64Decoded
{
     // Excluding function code, as it never gets to here
}

@end

请注意,该项目启用了 ARC。关于这里可能是什么问题的任何想法?谢谢。

编辑:我调整了上面的代码以帮助调试错误:

 NSData* dataDecoded = [input dataUsingEncoding:NSUTF8StringEncoding];
[dataDecoded base64Decoded];

dataDecoded从dataUsingEncoding获取一个值,调用base64Decoded时不是nil。当我转到调用 base64Decoded 时,它崩溃了。

最佳答案

在您的代码中插入一个断点并单步执行它,您将准确地看到它在哪里中断。

您可能还想通过查看这些文件的目标成员来检查 DDData 文件是否正确包含在您的项目中,应该勾选 .m。

关于objective-c - “发送到实例的无法识别的选择器”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214005/

相关文章:

ios - 带有 AFSSLPinningModeCertificate 的 AFNetworking 2

ios - 在 iOS 中访问最近使用的表情符号列表

ios - UIButton 图像只改变一个按钮

ios - 在 Swift 中更改 iOS 应用程序的 TableView 和 TableView 单元格的位置和布局

xcode - 如何在 Xcode 中保存和加载图片

ios - Firebase 数据需要很长时间才能在 tableview swift 3 中加载

ios - 在 iOS 中执行大量服务器请求的并发队列与串行队列

iphone - 不将数据放入我的核心数据数据库中

ios - 拍照后,UIImagePickerController 返回空的黑色照片

ios - UIScrollView 内的 UITextView 不滚动 - Objective c