Irbis, zwany panterą śnieżną

Wojtek Rolecki opublikował wpis dnia 2009/08/24 w kategorii: Cocoa, Maktura

SL?Doczekaliśmy się — w starym dobrym “under-promise, over-deliver” stylu, Apple ogłosiło że premiera nowego dużego drapieżnika z gatunku kotowatych odbędzie się nie we wrześniu, jak pierwotnie planowano, ale jeszcze w sierpniu. Co więcej, jak donosi Moje Jabłuszko, Snow Leopard będzie dostępny w Polsce równocześnie ze światową premierą, czyli już 28 sierpnia (to w ten piątek!).

Ale, przechodząc do rzeczy — jako, że blogiem plotkarskim o orientacji jabłkowo-makowej nie jesteśmy, a poza tym news i tak jest już średniej świeżości — chcieliśmy zakomunikować, że trzymamy rękę na pulsie i Maktura jest aktualizowana na bieżąco, tak aby była zgodna z naszym ulubionym systemem operacyjnym w wersji 10.6.

Najbliższa aktualizacja Maktury, która ukaże się naprawdę “na dniach”, będzie zawierała już większość wymaganych przez nowy system zmian i poprawek. Niestety nie możemy obiecać, że będzie zawierała wszystkie — testy wciąż trwają, a nie chcemy opóźniać terminu wydania Maktury 1.2. Wszelkie nowo wykryte problemy (odpukać) zostaną usunięte w wersji 1.2.1, którą oczywiście wydamy jak najszybciej.

Jakiego typu problemów może oczekiwać programista przy przejściu na Snow Leoparda? W ogólności zależy to oczywiście od jakości kodu i zgodności z zaleceniami, które Apple publikuje tu i ówdzie.

W telegraficznym skrócie, oto rzeczy które spowodowały że zadumaliśmy się na chwilę nad Xcodem:

  • Na samym starcie spotkało nas zaskoczenie — kod, który nie generował żadnych warningów pod Leopardem, w ogóle nie chciał się pod jego śnieżnym wariantem skompilować — dostaliśmy czerwonym komunikatem na dzień dobry. Problemem było zduplikowane w podklasie @synthesize atrybutu zadeklarowanego w klasie wyżej. Głupi błąd, ale kompilator pod 10.5 siedział cicho. :-)
  • Domyślnie, Xcode pod SL generuje fat-binary, które oprócz kodu dla PPC i x86, zawierają też kod na 64-bitowe procesory Intela (czyli amd64 AKA x64 AKA x86_64). I co z tego? Niewiele, jeśli byliście czujni, żyliście i kodowaliście w zgodzie z zaleceniami Apple (które ukazały się przed wprowadzeniem 10.5 na rynek). Jeśli nie, to spotkać Was może “klasyczna niespodzianka”. W szczególności, jeśli lubicie porównywać sobie zmienne zadeklarowane jako int ze stałymi typu NSNotFound, NSIntegerMax itp.
  • Wygląda na to, że NSArrayController przyjmuje teraz inne domyślne wartości swoich atrybutów, konieczne było zatem przeklikanie się przez IB lub odopowiednie poustawianie ich podczas inicjalizacji.
  • Kilka losowych problemów z .xibami — usuniętych naszą autorską metodą wypracowaną podczas miesięcy zmagań z Interface Builderem, przy użyciu skomplikowanego systemu kadzideł i mantr szeptanych o poranku.

Oprócz powyższych, trzeba oczywiście zwrócić uwagę na kod (klasy i metody), który w 10.4 i 10.5 był oznaczony w dokumentacji Apple jako deprecated. Snow Leopard, jak wiadomo, wprowadza sporo zmian “pod maską” systemu, część przestarzałych metod mogła więc zostać usunięta z systemowego API. Podsumowując proces ukompatybilniania Maktury z nowym systemem nie był do tej pory bardzo skomplikowanym zadaniem i oby ten trend się utrzymał :-)

Komentarze są wyłączone.