Najczęstsze pytania

Mam problemy z tworzeniem za pomocą Xcode.

Zobacz Debugowanie problemów z kompilacją.

Jak naprawić błędy związane z niezdefiniowanym symbolem podczas tworzenia?

Zobacz Wymagane ustawienia linku.

Mam problemy z używaniem polecenia j2objc w wierszu poleceń.

Najszybszym sposobem na utworzenie wiersza poleceń dla zadania j2objc jest skorzystanie z biblioteki javac i określenie ścieżki klasy (opcjonalnie), ścieżki źródłowej (opcjonalnej), katalogu wyjściowego i listy plików źródłowych. Gdy to się stanie, zastąp ciąg „j2objc” wartością „javac” i dodaj wszelkie flagi specyficzne dla j2objc. Dzieje się tak, ponieważ j2objc używa kompilatora Java jako frontendu, więc używa tych samych argumentów co kompilator. Pamiętaj: jeśli nie skompilowa się, nie będzie można go przetłumaczyć.

W jaki sposób działa funkcja wywozu śmieci?

Zobacz Zarządzanie pamięcią. Stale ulepszamy wygenerowany kod, aby usprawnić zarządzanie pamięcią za pomocą narzędzi Xcode do wykrywania przecieków i profilowania. Zachęcamy projekty korzystające z J2ObjC do monitorowania wydajności i wykrywania wycieków (tak jak powinny to robić wszystkie projekty na iOS) oraz do zgłaszania wszelkich wykrytych problemów.

Jak można zmniejszyć rozmiar przetłumaczonego kodu? Co może przyspieszyć tłumaczenie?

Patrz sekcja Eliminacja martwego kodu.

W jaki sposób j2objc obsługuje importowanie wewnątrz plików .java?

Frontend j2objc używa kompilatora javac. Dzięki temu wszystkie operacje importu są odczytywane tak, jak robiłby to każdy kompilator Java. Aby określić, gdzie szukać zaimportowanych klas, użyj tych samych opcji -classpath i -sourcepath, jak w przypadku kompilatora javac. Podczas generowania plików Objective-C zbierane są zewnętrzne odwołania do klas, a dyrektywy #import są dodawane do generowanych plików nagłówka (.h) lub plików implementacji (.m).

Dlaczego niektóre minimalne i maksymalne wartości dla typów liczb różnią się od specyfikacji Javy?

Te wartości różnią się od wartości zwracanych przez Javę, ponieważ są niezgodne z tym, co kompilator Objective-C zaakceptuje jako prawidłowy. Zamiast tego używamy wartości minimalnych i maksymalnych zdefiniowanych w elemencie /usr/include/values.h.