Konwersja niejawna Objective-C traci dokładność całkowitą (size_t do CC_Long)
Mam funkcję, która generuje szyfrowanie ciągu znaków sha256,
Oto funkcja:
-(NSString*)sha256HashFor:(NSString*)input
{
const char* str = [input UTF8String];
unsigned char result[CC_SHA256_DIGEST_LENGTH];
CC_SHA256(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2];
for(int i = 0; i<CC_SHA256_DIGEST_LENGTH; i++)
{
[ret appendFormat:@"%02x",result[i]];
}
return ret;
}
Teraz ta linia tutajCC_SHA256(str, strlen(str), result);
to jest to, co powoduje to ostrzeżenie (ostrzeżenie dotyczy zmiennej strlen (str)).
Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'CC_LONG' (aka 'unsigned int')
Zgaduję, że po prostu muszę przekonwertować strlen (str) na CC_Long, ale nie mam pojęcia, jak to zrobić.