2012-12-10 10 views
5

Chciałem oddzielić moje zasoby, pliki końcówek i pliki lokalizacyjne do wspólnego pakietu wielokrotnego użytku. Stworzyłem więc pakiet dla mojej aplikacji ios i określone zasoby, które mają być zawarte w pakiecie za pomocą faz kompilacji, skopiuj zasoby pakietu. Ale teraz, jeśli spróbuję załadować pakiet, nie jestem w stanie załadować pakietu. Próbuję użyć [NSBundle allBundles], a tablica pokazuje tylko główny pakiet aplikacji.Używanie NSBundle do załadowania zasobów

Próbowałem również wyliczyć katalog dla aplikacji NSApplication Path, ale ponownie jedynym dostępnym pakietem jest mój domyślny pakiet aplikacji. Chciałem nauczyć się tej techniki i wykorzystać ją do oddzielenia moich zasobów. Każda pomoc i sugestie będą mile widziane. Dziękujemy

Odpowiedz

6
[NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], pathToYourBundleWithinTheDotAppDirectory]; 

Daj mi znać, jak sobie radzisz.

+1

Nie ładuje pakietu. Wygląda na to, że pakiet znajduje się wewnątrz głównego pakietu aplikacji. Musiałem więc uzyskać ścieżkę do pakietu za pomocą [[NSBundle mainBundle] pathForResource: @ "MyBundle" ofType: @ "bundle"], a następnie użyć ścieżki do załadowania pakietu za pomocą bundleWithPath: method – Sandeep

+0

Jednak dodałem obraz do pakietu i próbował załadować obraz przy użyciu metody pathForResource: ofType: method, ale metoda jest zerowa, a następnie przejrzałem folder aplikacji symulatora i zobaczyłem, że obraz nie jest kopiowany. – Sandeep

+1

Może być konieczne dodanie fazy "Kopiuj pliki" do kompilacji. – hd1

2

spróbować czegoś takiego:

NSBundle* bundle=[NSBundle bundleWithIdentifier: @"bundle name"]; 

I upewnij się, że wybrano te opcje po przeciągnięciu zawiniątko do projektu:

enter image description here

+0

Utworzony pakiet dodałem cel do istniejącej aplikacji. – Sandeep

1

dla projektów z jednej wiązce, Używam:

// in this example, we load test.png from the bundle 
NSString *pathToResource = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"]; 

Co sprawia, że ​​s Wygodne jest to, że gdy masz zlokalizowane pliki, zapewnia to ścieżkę do pliku dla bieżącego użytkownika. Jest to przydatne, ponieważ zlokalizowane pliki nie znajdują się w głównym katalogu, ale są raczej we własnych podfolderach (na przykład angielskie zlokalizowane pliki znajdują się w podfolderze @ en.lproj), a wywoływanie ich po nazwie jest kłopotliwe, ponieważ potrzebujesz pełna ścieżka. Ta metoda dostanie ścieżkę dla ciebie.

Powiązane problemy