Przede wszystkim, ponieważ twoje pytanie jest oznaczone jako iPhone, możesz dołączyć kod tylko do swoich pakietów na iPhonie. Zasadniczo można używać tylko pakietów do pakowania zdjęć i plików dźwiękowych oraz innych danych statycznych.
Po utworzeniu nowego projektu w XCode istnieje możliwość utworzenia pakietu docelowego (w ramach biblioteki Framework &), ale pakiet zasobów jest po prostu katalogiem z przyrostkiem .bundle. I wygenerować moje z tego małego skryptu:
#!/bin/bash
echo "Building assets bundle."
if [ -d ./MyAssets.bundle ]; then
rm ./MyAssets.bundle/*
else
mkdir ./MyAssets.bundle
fi
find ./assets -type f -print0 | xargs -0 -J% cp % ./MyAssets.bundle
(nie jestem bash haker, więc może to prawdopodobnie można poprawić na wiele sposobów sugestie mile widziane.!)
Dzieje hierarchię folderów i spłaszcza go (Odrzucam hierarchie) do jednego katalogu o nazwie MyAssets.bundle. Wywołuję ten skrypt z oddzielnej fazy kompilacji w projektach, które importują pakiet, dzięki czemu zmiany są automatycznie śledzone.
Jeśli chcesz dowiedzieć się, jak tworzyć pakiety frameworku, jest to nieco bardziej skomplikowane (musisz przestrzegać określonych konwencji i zawierać informacje w plists), ale w przypadku pakietów na iPhone'a to wszystko, co musisz wiedzieć i zrobić.
Czy to możliwe, aby załadować pliki XIB z tego pakietu, bo nie znaleźli sposób, aby to zrobić ? – vakio
Możesz użyć odpowiedniego pakietu zarówno dla właściciela [[NSBundle mainBundle] loadNibNamed: @ "MyViewController": self options: nil] i [aViewController initWithNibName: @ "MyViewController" bundle: nil] (zero oznacza tylko główny pakiet) – Felixyz
Ale nie możesz mieć zewnętrznego pakietu, prawda? Podobnie jak NSBundle * bundle = someFunctionToLoadExternalBundle(); [bundle loadNibNamed: @ "name" owner: self options: nil]; Mam googleed i tylko stwierdziłem, że nie da się tego zrobić. Po prostu sprawdzam, czy odkryłeś cudowny sposób na zrobienie tego lub coś takiego, ale wiem, że prawdopodobnie nigdy się to nie wydarzy. – vakio