相关疑难解决方法(0)

Objective-C隐式转换失去整数精度(size_t到CC_Long)

我有一个生成字符串sha256加密的函数,

这是功能:

    -(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;
}
Run Code Online (Sandbox Code Playgroud)

现在这一行CC_SHA256(str, strlen(str), result);是产生此警告的内容(警告是针对strlen(str)变量的).

Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'CC_LONG' (aka 'unsigned int')
Run Code Online (Sandbox Code Playgroud)

我猜我只需要将strlen(str)转换为CC_Long,但我不知道该怎么做.

macos objective-c

21
推荐指数
1
解决办法
2万
查看次数

标签 统计

macos ×1

objective-c ×1