Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 已将无法识别的iOS选择器发送到实例0x45e8_Objective C_Ios_Unrecognized Selector - Fatal编程技术网

Objective c 已将无法识别的iOS选择器发送到实例0x45e8

Objective c 已将无法识别的iOS选择器发送到实例0x45e8,objective-c,ios,unrecognized-selector,Objective C,Ios,Unrecognized Selector,下面是我试图加密数据的代码 输入/调用我的加密方法: [self myED:@"wcc123" :@"hahaha" :@"yyyy"]; - (NSData*) myED:(NSData*)data :(NSData*) key :(NSData*)iv{ @try { // Try something NSLog( @"Original String: %@", data ); size_t bufferSize = [data

下面是我试图加密数据的代码

输入/调用我的加密方法:

[self myED:@"wcc123" :@"hahaha" :@"yyyy"];

- (NSData*) myED:(NSData*)data :(NSData*) key :(NSData*)iv{

    @try {
        // Try something
        NSLog( @"Original String: %@", data );


        size_t bufferSize = [data length]*2;
        void *buffer = malloc(bufferSize);
        size_t encryptedSize = 0;    
        CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,                                          
                                              [key bytes], [key length], [iv bytes], [data bytes], [data length],                                          
                                              buffer, bufferSize, &encryptedSize);  
    }
    @catch (NSException * e) {
        NSLog(@"Exception: %@", e); 
    }
    @finally {
        // Added to show finally works as well
    }


    return nil;

}
但是,当尝试运行此代码时,它会提示我以下异常

2012-07-03 16:52:44.776 wccTest[930:f803]异常: -[\uu NSCFConstantString字节]:


有人能在这方面提供帮助/建议吗?

您的方法需要
NSData
,您正在传递
NSString
s.

您的方法需要
NSData
,您正在传递
NSString
s.

<

[self myED:@"wcc123" :@"hahaha" :@"yyyy"];
试着打电话

[self myED:[@"wcc123" dataUsingEncoding:NSUTF8StringEncoding] :[@"hahaha" dataUsingEncoding:NSUTF8StringEncoding] :[@"yyyy" dataUsingEncoding:NSUTF8StringEncoding]];
而不是

[self myED:@"wcc123" :@"hahaha" :@"yyyy"];
试着打电话

[self myED:[@"wcc123" dataUsingEncoding:NSUTF8StringEncoding] :[@"hahaha" dataUsingEncoding:NSUTF8StringEncoding] :[@"yyyy" dataUsingEncoding:NSUTF8StringEncoding]];

在@borrrden评论之后,我还将为您的方法提供一个自我解释的名称。例如:

- (NSData*)encryptEDData:(NSData*)data withKey:(NSData*)key initVector:(NSData*)iv {
    // same as before
}
因此,此方法的
选择器
将是
encryptEDData:withKey:initVector:

您可以像这样调用该方法:

NSData* edData = //...
NSData* keyData = //...
NSData* ivData = //...
[self encryptEDData:edData withKey:keyData initVector:ivData];
此外,我将在方法中执行
NSString
NSData
的转换,让它接受字符串。我认为这样可以更好地理解该方法的目标


希望这能有所帮助。

在@borrrden评论之后,我还将为您的方法提供一个自我解释的名称。例如:

- (NSData*)encryptEDData:(NSData*)data withKey:(NSData*)key initVector:(NSData*)iv {
    // same as before
}
因此,此方法的
选择器
将是
encryptEDData:withKey:initVector:

您可以像这样调用该方法:

NSData* edData = //...
NSData* keyData = //...
NSData* ivData = //...
[self encryptEDData:edData withKey:keyData initVector:ivData];
此外,我将在方法中执行
NSString
NSData
的转换,让它接受字符串。我认为这样可以更好地理解该方法的目标


希望这能有所帮助。

如果您不希望与您一起工作的任何开发人员对您大喊大叫,请为您的参数命名。如果您不希望与您一起工作的任何开发人员对您大喊大叫,请为您的参数命名。