Ich habe eine Funktion, die eine sha256 Verschlüsselung einer Zeichenfolge ist zu erzeugen,Objective-C Implizite Konvertierung verliert integer Präzision (size_t bis CC_Long)
Hier ist die Funktion:
-(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;
}
jetzt hier diese Linie CC_SHA256(str, strlen(str), result);
ist das, was diese Warnung erzeugt (die Warnung ist für die Variable strlen (str)).
Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'CC_LONG' (aka 'unsigned int')
Ich vermute, ich brauche nur die strlen (str) zu einem CC_Long konvertieren, aber ich habe keine Ahnung, wie das zu tun.
'(CC_LONG) strlen (str)' – mah
Welche Art von Compiler/Toolchain und Einstellungen verwenden Sie? Dies scheint etwas übermäßig pedantisch zu sein. –
Übrigens, warum würde dies markiert werden osx oder automatisch-Ref-Zählen ... genau Null von diesen beiden ist in der Frage. – mah