Objective-C中的实例消息错误,这意味着什么?为什么会这样?

Objective-C中的实例消息错误,这意味着什么?为什么会这样?,objective-c,error-handling,aes,nsdata,Objective C,Error Handling,Aes,Nsdata,我得到下面的错误,没有明显的原因,我会尝试自己修复它,但我不明白这意味着什么。还有人明白吗?这是错误,下面是代码 错误:实例消息的接收器类型“NSdata”未声明选择器类型为“EncryptAES:”的方法。 我已在该行添加了一条注释,其中包含错误: //Change the Input String to Data NSData *objNSData = [NSData dataWithData:[Input dataUsingEncoding: NSUTF8StringEncoding]];

我得到下面的错误,没有明显的原因,我会尝试自己修复它,但我不明白这意味着什么。还有人明白吗?这是错误,下面是代码

错误:实例消息的接收器类型“NSdata”未声明选择器类型为“EncryptAES:”的方法。

我已在该行添加了一条注释,其中包含错误:

//Change the Input String to Data
NSData *objNSData = [NSData dataWithData:[Input dataUsingEncoding: NSUTF8StringEncoding]];
//Encrypt the Data
[objNSData EncryptAES:Keyword.text]; //Error appears here
NSString *InputString = [[NSString alloc] initWithData:objNSData encoding:NSUTF8StringEncoding];
这意味着什么,为什么会发生,我能做些什么来修复它


什么是实例消息?

这里的问题是
NSData
不响应
EncryptAES:
选择器。只能调用类上存在的选择器。使用Objective-C运行时的松散类型,您还可以在不响应所述选择器的类上调用选择器,只要选择器出现在编译器正在处理的至少一个其他类的实现中


所有标准的
NSData
方法都可以在上找到。苹果有加密的示例代码,但它不是内置于
NSData

的。这里的问题是
NSData
不响应
EncryptAES:
选择器。只能调用类上存在的选择器。使用Objective-C运行时的松散类型,您还可以在不响应所述选择器的类上调用选择器,只要选择器出现在编译器正在处理的至少一个其他类的实现中


所有标准的
NSData
方法都可以在上找到。苹果有用于加密的示例代码,但它不是内置于NSData的。
NSData

我的猜测是,您试图对NSData使用AESConcrypt“类别”,但您的项目中实际上没有安装该类别。

我的猜测是,您试图对NSData使用AESConcrypt“类别”,但是您的项目中实际上没有安装该类别。

那么我必须重写此代码吗?或者CommonCrypto有什么方法可以完成这个任务?你可以用CommonCrypto来完成。老实说,苹果在CommonCrypto上的文件让我很困惑,我只是一个初学者,所以这是rocky water。但我已经在使用CommonCrypto了。如果我在文件顶部导入了它,这是否意味着我正在使用它?我问了一些问题,但答案不清楚。看起来这段代码应该是有意义的,但我想它没有,因为XcodeCommonCrypto没有添加
NSData
加密方法。您需要在线复制一些示例代码,或者询问有关stackoverflow的其他问题。这个问题不是针对加密,而是针对Objective-C运行时。那么它加密什么呢?串?嗯,我必须重写这段代码吗?或者CommonCrypto有什么方法可以完成这个任务?你可以用CommonCrypto来完成。老实说,苹果在CommonCrypto上的文件让我很困惑,我只是一个初学者,所以这是rocky water。但我已经在使用CommonCrypto了。如果我在文件顶部导入了它,这是否意味着我正在使用它?我问了一些问题,但答案不清楚。看起来这段代码应该是有意义的,但我想它没有,因为XcodeCommonCrypto没有添加
NSData
加密方法。您需要在线复制一些示例代码,或者询问有关stackoverflow的其他问题。这个问题不是针对加密,而是针对Objective-C运行时。那么它加密什么呢?串?嗯,你在哪里得到了AESEncrypt的.h文件?从同一个源获取.m文件。抱歉,我输入了一个错误,没有AESEncrypt文件,错误应该是EncryptAES:not AESEncrypt:AESEncrypt的.h文件是从哪里获取的?从同一来源获取.m文件。很抱歉,我输入了一个错误,没有AESEncrypt文件,错误应该是EncryptAES:not AESEncrypt: