2011-08-04 10 views
6

Jaki jest najlepszy sposób na zapewnienie kompatybilności wstecznej podczas budowania aplikacji dla systemu Mac OS X 10.7, ale również kompatybilności z wersją 10.6?Kompatybilność wsteczna Mac OS X 10.6 i 10.7 podczas korzystania z NSPopovers

Mam aplikację, która korzysta z NSPopover, gdy klient ma 10,7, a NSMenu, gdy klient ma 10,6. Problem polega na tym, że po uruchomieniu aplikacji na komputerze z procesorem 10.6 aplikacja ulega awarii z powodu wyjątku "nie znaleziono symboli", mówiąc, że (rodzaj) "_ OBJC $ _NSPopover nie można znaleźć w AppKit". Czy muszę używać identyfikatora w całej aplikacji dla nowych funkcji?

Odpowiedz

2

można uzyskać obiekt klasy dla NSPopover za pomocą NSClassFromString function() to zwraca obiekt klasy z można wykorzystać do tworzenia wystąpień na przykład

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

Inną możliwością jest, aby mieć dwa oddzielne pliki nib jeden w przypadku 10,6 i jednego w przypadku 10,7 stalówka nie musi być kompletnym interfejsem, tylko część zawierająca dane NSP, a następnie ładować odpowiedni plik końcówki w czasie wykonywania.

Powiązane problemy