Cocoa 缓存URL-创建适当的NSString表示
我想在本地文件系统中缓存从URL下载的映像 我不知道的是,如何从URL创建与iOS文件系统支持的字符兼容的Cocoa 缓存URL-创建适当的NSString表示,cocoa,url,caching,hash,nsstring,Cocoa,Url,Caching,Hash,Nsstring,我想在本地文件系统中缓存从URL下载的映像 我不知道的是,如何从URL创建与iOS文件系统支持的字符兼容的NSString。例如,如果我尝试创建一个名称中带有:的文件,它将失败 创建此NSString应遵循哪些步骤?简单的散列是最好的方法吗?如果是这样,我可以使用iOS中的哪个哈希例程?以下代码属于ZDS_SharedresolveLocalURLForRemoteURL接受远程URL并返回指向iOS文件系统上文件的URL。文件名将是一个字母数字字符串,与原始URL不相似,但这不应该是一个问题
NSString
。例如,如果我尝试创建一个名称中带有:
的文件,它将失败
创建此
NSString
应遵循哪些步骤?简单的散列是最好的方法吗?如果是这样,我可以使用iOS中的哪个哈希例程?以下代码属于ZDS_SharedresolveLocalURLForRemoteURL
接受远程URL并返回指向iOS文件系统上文件的URL。文件名将是一个字母数字字符串,与原始URL不相似,但这不应该是一个问题
//NSData类别
-(NSString*)zs_摘要
{
uint8_t摘要[抄送摘要长度];
CC_SHA1([self bytes],[self length],digest);
NSMutableString*outputHolder=[[NSMutableString alloc]initWithCapacity:CC_SHA1_DIGEST_LENGTH*2];
for(int i=0;i
以下代码属于ZDS_SharedresolveLocalURLForRemoteURL
接受远程URL并返回指向iOS文件系统上文件的URL。文件名将是一个字母数字字符串,与原始URL不相似,但这不应该是一个问题
//NSData类别
-(NSString*)zs_摘要
{
uint8_t摘要[抄送摘要长度];
CC_SHA1([self bytes],[self length],digest);
NSMutableString*outputHolder=[[NSMutableString alloc]initWithCapacity:CC_SHA1_DIGEST_LENGTH*2];
for(int i=0;i
我会使用哈希:
- 它将使文件名更具可读性
- 您可以避免文件名长度的问题
CC_MD5(in, in_len, out);
函数包含在
中,还有其他哈希函数
您可以找到有关如何将其封装在接受/返回NSString的函数中的信息。我会使用哈希:
- 它将使文件名更具可读性
- 您可以避免文件名长度的问题
CC_MD5(in, in_len, out);
函数包含在
中,还有其他哈希函数
您可以找到有关如何将其封装在接受/返回NSString的函数中的信息
// NSData category
- (NSString*)zs_digest
{
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1([self bytes], [self length], digest);
NSMutableString* outputHolder = [[NSMutableString alloc] initWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[outputHolder appendFormat:@"%02x", digest[i]];
}
NSString *output = [outputHolder copy];
MCRelease(outputHolder);
return [output autorelease];
}
CC_MD5(in, in_len, out);