0
Я пытаюсь сделать простое шифрование строки и получаю сообщение об ошибке. Мой код:Вопрос CommonCrypto/CommonDigest iPhone
#import <CommonCrypto/CommonDigest.h>
#define CC_MD5_DIGEST_LENGTH 16
- (NSString *)md5:(NSString *)str {
const char *cStr = [str UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, strlen(cStr), result);
return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]];
}
NSString *test = md5(@"testing");
К сожалению, я получаю сообщение об ошибке сказав «md5 необъявленная» для начала этой функции. Должен ли он быть определен в библиотеке, которую я импортировал выше?
Я получаю сообщение о том, что контроллер вида может не отвечать на -md5. Я также попытался сделать это, перейдя в «NSString * test = nil», а затем [test md5: @ «testing»], но затем он говорит, что md5 может не отвечать на NSString, что не имеет для меня никакого смысла. Не вызывает ли функция для строки? – startuprob
[test md5: @ "testing"] не работает, поскольку компилятор правильно сообщает вам, что на объекте NSString (который является тестом) нет метода md5 :. Метод md5: существует в любом классе, в котором вы используете метод md5:. – Eric