iphone - Qualquer maneira de obter um cache UIImage do meu diretório 'Documentos'? - CoreDump.pt
Qualquer maneira de obter um cache UIImage do meu diretório 'Documentos'?
Eu sei que o -imageNamed: método retorna uma cache UIImage, mas o problema é que meu arquivo de imagem é armazenado em 'Documentos', eo -imageNamed: método parece procurar apenas o Bundle ... Eu estou atualmente (relutantemente) usando -imageWithContentsOfFile: para obter a minha imagem de 'Documentos', mas não é o mesmo ... Scaling up / down um UIImageView que contém a imagem resultante é instável e desajeitada. Escalonar o mesmo UIImageView contendo uma imagem criada com -imageNamed: no entanto parece muito suave. Então, mais uma vez: Como posso obter um UIImage em cache do meu 'Documentos' se eu não posso usar -imageNamed :?
Fiz uma extensão da resposta dada pelo rpetrich e cancelou o imageName: método para adicionar mais de uma gota de substituição. Ele procura o pacote principal em primeiro lugar e, em seguida, procura no diretório caches. Você poderia naturalmente alterar o diretório de caches para o directório documento.
Respondeu 12/11/2010 em 10:42 2010-11-12 10:42 share
fonte usuário Chase
A maneira mais simples seria uma NSMutableDictionaryarmazenar as imagens em cache e um método de limpar o cache:
Nota: você deve chamar +[UIImage clearCache]de seu didReceiveMemoryWarningmétodo. Além disso, clearCacheirá invalidar todos os objetos no cache, e não apenas itens não utilizados; uma UIImagesubclasse e mecanismo de cache mais complicado seria necessário para remediar esta situação.
Você pode armazenar em cache UIImages-se assim como -imageNamed:o faz. Ele só carrega-los, e depois agarra-los. Você pode prendê-los, também, usando um NSDictionarye implementar seu próprio-imageNamed:
Mas estou mais preocupado com o problema que você está tendo com descamação. Como são suas imagens entrar em documentos, como você está escalando-os, e tê-lo testado o mesmo arquivo de imagem armazenado no pacote? Duvido que -imageNamed:tenha algo a ver com isso. Eu faria as coisas mais suspeitas, como o fato de que o pacote tem alguma compressão aplicadas a ele (embora eu ainda não tenho uma teoria sobre por que isso teria importância na prática), diferenças no arquivo, ou diferenças na forma como o resto do programa está se comportando durante a escala (causando contenção no disco ou CPU). Caching é improvável relacionados com esta questão.
Eu faria algumas profiling w / Instrumentos para tentar descobrir onde o choppiness está vindo. Você está estourar o limite de disco, CPU, memória? Qual é o gargalo?
Que tal escrever o seu próprio cache de imagem? Você tem todas as peças no lugar, agora você só precisa encapsular-lo e manter um registro de imagens que você já carregados.
Respondeu 27/08/2009 em 04:46 2009-08-27 04:46 share
Aviso: passar argumento 1 de "sqlite3_bind_text" de tipo ponteiro incompatível" O que devo fazer para isso?