मैं एक समारोह है कि एक तार का एक SHA256 एन्क्रिप्शन पैदा कर रहा है,ऑब्जेक्टिव-सी अंतर्निहित रूपांतरण पूर्णांक परिशुद्धता खो देता है (CC_Long को size_t)
यहाँ समारोह है है:
-(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;
}
अब इस लाइन यहीं CC_SHA256(str, strlen(str), result);
यह चेतावनी उत्पन्न कर रहा है (चेतावनी स्ट्रेल (स्ट्र) चर के लिए है)।
Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'CC_LONG' (aka 'unsigned int')
मेरा अनुमान है कि मैं सिर्फ एक CC_Long को strlen (एसटीआर) बदलने की आवश्यकता है, लेकिन मैं कैसे ऐसा करने के लिए पता नहीं है।
'(CC_LONG) strlen (एसटीआर)' – mah
संकलक/toolchain और सेटिंग्स आप किस तरह के प्रयोग कर रहे हैं? यह कुछ ज्यादा pedantic की तरह लगता है। –
वैसे, यह ओएसएक्स या स्वचालित-रेफ-गिनती क्यों टैग की जाएगी ... इनमें से किसी का बिल्कुल शून्य प्रश्न में है। – mah