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

时间:2011-10-14 22:30:29

标签: objective-c error-handling aes nsdata

我得到以下错误没有明显的原因,我会尝试自己解决但我无法理解它的含义。还有其他人理解吗?这是错误,下面是代码。

错误:接收器类型“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];

这意味着什么,它为什么会发生,我该怎么做才能解决它?

是一个实例消息?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

我的猜测是你正在尝试为NSData使用AESEncrypt“类别”,但实际上并没有在项目中安装该类别。