2012-01-04 27 views
8

Başlık oldukça fazla soru içeriyor. Uygulamalarının uygun olmayan şekilde yapılandırılmış bir veri modeliyle bir uygulama yayınladık. Bunları bir sonraki sürümde, veri modelinin yeni bir sürümü ile düzelttik, ancak Xcode, önceki veri modeli sürümünü derlerken hala uyarıları görüntülüyor.Yönetilen bir nesne modeli derlenirken eksik ters uyarıları yok saymanın herhangi bir yolu var mı?

Eski veri modelindeki belgeleri yeni veri modeline geçirme özelliğini kırmak istemiyorum ve eski veri modelindeki tersleri değiştirmenin tam olarak bunu yapacağından eminim. Bu yüzden, sadece o dosya için bu uyarıyı bastırmanın bir yolu olup olmadığını merak ediyorum - başka birinin gelebileceğinden endişeleniyorum, uyarıya bakın ve "düzeltmeye" karar verin.

Düzenleme: Pe8ter'in yorumlarına dayanarak, veri modelinin tek bir düzeltmesi için MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS seçeneğini belirtmek istiyorum. Proje çapında veya hatta grup çapında bir modelden vazgeçmek istemiyorum çünkü insanlar gelecekte aynı hatayı yaparlarsa uyarıların görünmesini istiyorum.

+1

Hedefinizin yapı ayarlarında Temel Veri ayarlarıyla uğraşmayı denediniz mi? Ters bir ilişki olmadığı için uyarıları bastırmak için orada bir tane var. – pe8ter

+0

Proje ayarlarında onları kaçırdım, ancak MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS öğesini devre dışı bırakmak istiyorum gibi görünüyor. Ne yazık ki, sadece tek bir model revizyonu için bunu yapmanın bir yolunu görmüyorum. Bütün model paketi derlenmiştir; bireysel revizyonlar ayrı olarak derlenmez. Olsa bile, MOMC, Yapı Aşamasında belirtilen tek dosya derleyici seçeneklerini yok sayıyor gibi görünüyor. – Jablair

+0

Aynı sorun var çünkü Apple daha önce yakalanmayan yeni bir XCode sürümünde yeni uyarılar getirdi. Sanırım tüm modelde -w kullanacağım ve halka açıldığımda uyarıları kontrol edeceğim. – Bjinse

cevap

1

Bunun için kendim istediğimi söyleyemem, ancak eski veri modelinize momc derleyicisini çalıştıran bir komut dosyası yazmayı MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS istediğiniz şekilde ayarlayarak deneyebilirsiniz. Ardından, oluştururken komut dosyasını çalıştırmak için bir Çalıştırma Komut Dosyası oluşturma aşaması ekleyin. Xcode'un da derlemeyi denemesini önlemek için eski veri modelinizi hedefinizden kaldırmanız gerekebilir. Derlenmiş modeli yerleşik uygulamanıza eklemek için Bundle Resources oluşturma aşamasını kullanabilirsiniz.

Bu komut dosyasını yazmadan önce, momc model derleyicisini bulmanız gerekir. This page, Library/Xcode/Plug-ins/XDCoreDataModel.xdplugin/Contents/Resources/ adresinde olduğunu söylüyor, ancak Xcode 4 için taşınmış gibi görünüyor.

+0

Momc,/Developer/usr/bin/momc adresinde veya Xcode'un kurulu olduğu her yerde bulunur. Ancak, bunun işe yaramayacağını düşünüyorum. momc, xcdatamodeld paketini, * _v1.xcadatamodel, * _v2.xcdatamodel, vb. için ayrı bir derleme yapmak yerine tek bir varlık olarak derler. Bu durumda, * _v2 üzerindeki uyarıları göz ardı etmek istiyorum, ancak gelecekteki düzeltmeler için etkin kalmasını istiyorum. – Jablair

+0

Son hendek çabası: eski modelinizi hedeften kaldırın, böylece Xcode tüm modelleri kurar, ancak bu uyarıları açık hale getirir. Eski model dahil olmak üzere tüm modelleri derlemek için bir kod oluşturma aşaması kullanın ve Xcode'un oluşturduğu modeli değiştirmek için sonucu kullanın. Bu işe yaramazsa, cevabın "hayır, tek bir dosya için momc ayarlarını değiştirmenin bir yolu yoktur" diye düşünmek zorundayım. İyi şanslar. – Caleb

2

Yalnızca geriye dönük uyumluluk için dosya eklediğiniz ve bu nedenle, hiç değişmesini istemediğinizden, önceden denetlemenizi öneririm Kaynak kontrolü içine derlenmiş dosyayı ve doğru yere koymak için bir Kopya Dosyaları yapı aşaması kullanarak.

Sadece bir pakette tek bir revizyondan bahsediyoruz, çünkü model kaynağında boş, sahte bir versiyon tutmanız gerekebilir (böylece numaralandırma doğru olur). Ardından Kopyalama Dosyaları aşamanız bunun üzerine yazacaktır.

+1

Bu fikri beğeniyorum. Bunu tam olarak nasıl yaparsın? –

İlgili konular