Tercih dosyaları nasıl bozulur?


10

Suçluların bir uygulama veya işlem için bozuk bir tercih dosyası olduğu birkaç farklı sorun giderme makalesi ve soru-cevap okudum. Genellikle çözüm, kötü tercih dosyasını silmektir ve herhangi bir yazılımın hatalı çalıştığı her yeniden başlatıldığında yeni, varsayılan bir tercih dosyasının oluşturulmasına izin vermektir.

Bir tercih dosyası nasıl bozulur? Bu yalnızca düşük düzeyli bir okuma / yazma hatası mı yoksa bazı durumlarda daha yüksek düzeyli bir hata mı var? Sadece hatalı biçimlendirilmiş veya yanlış yazılmış XML mi?

plutilDosyada sözdizimsel bir hata olup olmadığını söyleyebileceğime inanıyorum , ancak yine hata nasıl tanıtıldı? Bu bozuk dosyalar için her zamanki kaynakta net değilim. Teşekkürler.

Yanıtlar:


6

Çok sayıda şeyden kaynaklanabilir, ancak en yaygın neden dosyanın yazıldığı yer olduğuna ve uygulamanın dosyayı yazmayı bitirmeden sona erdiğine inanıyorum. Bu, sistem ek yüklerinin o zaman başarılı bir yazma için çok büyük olmasından kaynaklanabilir.

Sabit disk veya bellekle ilgili donanım hataları da veri hatalarına neden olabilir, ancak bunların şu ana kadar sorunlarınızın en az olacağını düşünürüm.


4
Şüpheliyim. Bu durumda, bu çok açık bir hata önlemek için kelimenin tam anlamıyla 2 ekstra kelime alır, çünkü uygulama çok kötü yazılmış olmalıdır. Apple'ın bir plist yazmak için örnek kodu yöntemi kullanır -writeToFile:atomically:YES("veriler bir yedekleme dosyasına yazılır ve sonra - hata oluşmazsa - yedekleme dosyası belirtilen adla yeniden adlandırılır"). POSIX rename()işlevi, dosyanın "sistem işlemin ortasında çökse bile" dosyanın var olacağını garanti eder.
Ken

3

Hemen hemen her durumda, plist dosyasıyla sözdizimsel olarak yanlış bir şey olmadığını iddia ediyorum. Apple'ın plist verilerini yükleme ve kaydetme işlevleri çok dikkat çekiyor ve çok kullanılıyor. Hemen hemen her hata şimdiye kadar bulundu ve düzeltildi.

(Plist'lerin sürükle-bırak ve pano, uygulamaları başlatmak için sanal alan izinleri, her uygulama için kullanıcı arayüzleri ve hatta Finder'da hangi simgenin görüntüleneceği gibi her türlü şey için kullanıldığını düşünün. plist yazma kodunda bazı uygulamalar için tercih dosyalarını bozan bir hata vardı, ancak bu diğer şeylerin hiçbirini değil!)

Bir uygulamanın tercih dosyası (plist), bellek içi veri yapılarının bazılarını diskte depolar. Dolayısıyla, uygulamada bir şeyin yanlış ayarlanmasına neden olan bir hata varsa, kaydedilir.

Genellikle bir uygulama hatalı davranmaya başladığında, uygulamayı bırakıp yeniden başlatabilirsiniz. Bu, birçok parçasını sıfırlar ve sorunu çözebilir. Bununla birlikte, tercih dosyaları diskten yeniden yüklenir, bu nedenle uygulamanın etkilenen kısmı kalıcı bir tercihe kaydedildiyse, uygulamayı yeniden başlatmanın bir etkisi olmaz: kötü değer tekrar yüklenir. O zaman tercih dosyasını silmek yardımcı olabilir. Uygulamayı yeniden başlatmak gibi, ancak kaydedilen şeyler için.

Bunlar, programcılar uygulamalarının sahip olduğu verilerin doğru olduğunu varsaydığı için olabilir. Bir renk yalnızca standart bir renk tekerleği kontrolünü tıklayan kullanıcı tarafından seçilebiliyorsa, muhtemelen kullanmadan önce doğru olduğunu doğrulamak için ekstra bir iş yapmazlar. (Buna karşılık, Safari gibi bir uygulama , dosyaları doğrudan internetten yükleyip çalıştırdığı için her şeyi doğrulayan bir ton ekstra iş yapar .)

Bunun tersi, neredeyse her zaman doğru olmasıdır ve dahili değerlerin doğru olduğunu varsayarsanız çok daha kolaydır. Dezavantajı, kötü bir değer bir şekilde gizlenirse (kullanıcı tamamen beklenmedik bir şey yaptığında), her şey sıfırlanana kadar işler haywire gidebilir.


İlginç. Sorunun genellikle uygulamaya özgü olduğunu ve plist'in herhangi bir okuma / yazma veya genel işlemesi ile değil, kötü değerlerin ayarlanmasına ve daha sonra kullanılmadan doğrulanmamasına izin veren bir hata veya gözetim ile ilgili olduğunu söylüyorsunuz. Yine de bana garip geliyor, ancak Dock ( apple.stackexchange.com/questions/33950/… ) gibi yaygın (ve resmi) bir şeyin bir sorunu olabilir, ancak belki de bir istisna ve gerçekten bir okuma / yazma hatası.
wxs

walker: Birisi bu bozuk Dock plist dosyalarından birine sahipse, kontrol edilmesi kolaydır. Param hala plist kodunda değil, uygulamada (Sistem Tercihleri ​​veya Dock) bir hatadır.
Ken

1

Teknik açıdan üst düzey bir vatandaş olarak iTunes Tercih Dosyamın bozuk olduğunu ve iTunes'u her açışımda lisans sözleşmesinin yapılmasına neden olduğunu buldum. Ayrıca, tüm tercihlerimin sıfırlanması gerekiyordu. Yukarıdaki cevapların doğru olduğuna inanıyorum, bu sorunu yaşamadan önce, bilgisayarımın zorla kapatılmaları (bölgedeki elektrik sorunları) ve birkaç kez yeniden başlatma / yarım yeniden başlatma yapmak zorunda kaldım. Talimatlar / yazım tamamlanmadan başvurular sona erdi. Ancak yeni bir iTunes tercih dosyası oluşturma düzeltmesi çevrimiçi ve yapılması çok kolay oldu. Sorunu çözdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.