2011-08-04 25 views
6

Mac OS X 10.7 için bir uygulama oluştururken ve ayrıca 10.6 ile uyumlu kalırken geriye dönük uyumluluğu gerçekleştirmenin en iyi yolu nedir?Mac OS X Uygulama geriye doğru uyumluluk 10.6 ve 10.7 NSPopovers kullanırken

İstemci 10.7 iken bir NSPopover ve istemci 10.6 olduğunda bir NSMenu kullanan bir uygulamam var. Sorun, uygulamayı bir 10.6 makinesinde başlatırken, uygulamanın "tür bulunamadı" diyerek istisna olduğunu, "_ OBJC $ _NSPopover AppKit'te bulunamadı" olduğunu. Yeni özellikler için başvuru boyunca kimlik kullanmalı mıyım?

cevap

2

yapabilirsiniz fonksiyon NSClassFromString() Örneğin örneklerini oluşturmak için kullanabilirsiniz bu sınıfı nesneyi döndürmek kullanarak NSPopover için sınıf nesnesi olsun

id thePopover = [[NSClassFromString(@"NSPopover") alloc] init]; 

başka bir olasılık iki ayrı kalem ucu dosyaları tek sahip olmaktır 10.6 için ve 10.7 için bir tane, nib tam bir arabirim olmak zorunda değildir, sadece NSPopover'ı içeren kısım ve daha sonra uygun nib dosyasını çalışma zamanında yükler.