2013-08-30 12 views
7

ile kaydedilmiş kayıtsız yazı tipi Çalışma zamanında ttf yazı tiplerini yüklüyorum ve bunları CoreText kullanarak kaydediyorum. Daha sonra yazı tipi güncellendiğinde, CoreText'in yazı tipinin kaydını tutar, bir sunucudan en son sürümü indirir ve yazı tipini CoreText ile tekrar kaydeder.IOS: CoreText

Bu hemen hemen çalışır, ancak yazı tipi önbelleğe alınmış ve uygulamamın sonlandırılıp yeniden başlatılmasına kadar güncellenmemiş gibi görünüyor.

Yazı tipinin kaydını kaldırmak ve önbellekten kaldırmak için uygun yol hangisidir?

Ben yazı tipinin kaydı için bu kodu kullanın: Ben yanlış bulduğunu, ama düzeltmek için nasıl bilmiyorum

NSURL *url = /* My url to the font */; 
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef) url); 
CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider); 
CGDataProviderRelease(fontDataProvider); 
CFErrorRef error = nil; 
CTFontManagerUnregisterGraphicsFont(newFont, &error); 

CGFontRelease(newFont); 

if (error) { 
    NSLog(@"Error unregistering font: %@", error); 
} 

return newFontName; 

Bir şey, ben CGFontRef edinmektir. Her seferinde CGFontCreateWithDataProvider yeni referanslar oluşturuyor mu, yoksa önceden kayıtlı CGFontRef referansını mı alıyorsunuz? Zaten kayıtlı bir yazı tipi için CGFontRef almak için daha iyi bir yolu var mı?

Dinamik UIImage örnekleri oluşturmak için yazı tipini kullandım, bu nedenle yazı tipine referansta bulunan herhangi bir etiket veya başka UI öğesi olduğunu düşünmüyorum.

Yardımlarınız için teşekkürler!

+0

Bunu hiç çözdünüz mü? –

cevap

0

Bazı denemelerden sonra, iOS 7'nin bir hatası olduğunu varsayalım.
Bunu iOS 6'da çalıştırmayı denediniz mi?