Wpis z mikrobloga

Potrzebujemy pomocy/nakierowania przy kolejnym etapie nauki #swift w #xcode czyli #ios.

Chodzi o to, że mam kilka folderów z grami w HTML które są dodane jako foldery referencyjne. Niestety są również foldery poza katalogami gier które są niezbędne do nich odpalenia (które również dodałem jako foldery referencyjne by korzystać z nich jako bundle tak jak w przypadku gier). Do odpalenia tego całego ustrojstwa korzystam z #gcdwebserver bo nic innego sensownego nie znalazłem w tym temacie.
Po wciśnięciu button gra uruchamia localhost i ładuje pliki z folderu z grą. Tutaj właśnie powstaje mój problem bo za cholerę nie wiem jak zrobić by jeszcze ładowała te foldery niezbędne do uruchomienia.

Być może nie jasno wytłumaczyłem, dlatego gdyby ktoś był chętny pomóc to postaram się jakoś jaśniej to nakreślić
  • 16
@duchu0: No dobra to teraz poka jaką masz strukturę katalogów, chodzi mi o gry i o te dodatkowe foldery, które chcesz wgrać. I co to dokładnie za zależności są, czemu nie są w tym samym folderze co gra?
@tonamini: właśnie do tego dążę żeby z tego korzystać dlatego wszystko jest dodane jako referencje.
@lawicko: jest tak zrobione ponieważ są to tak naprawdę te same pliki dla każdej gry, wiec bez sensu jest dodawać je do każdej z osoba. Dlatego wymyśliłem sobie, że dobrze by było gdyby były ładowane osobno.

A struktura wygląda mniej więcej tak
-Games (grupa żółty katalog)
----- Pliki wspólne (niebieski)
----- Gra 1 (niebieski)
-----
@tonamini: no tak tylko jak np. zrobić by gcdwebserver brał pod uwagę również katalog z plikami wspólnymi. Teraz jest tak, ze jemu podaje się jako root właśnie folder z jedną grą i wtedy on nie widzi tych plików wspólnych i wali 404.
@duchu0: Niestety nie :D Mam na firmowym lapku, a firma ma dosyć sporego bzika jeśli chodzi o kopiowanie/udostępnienie kodu, bo apka obsługuje sporo kasy w ciągu miesiaca ;) GCDServer w Twoim wypadku może być dobrym wyborem, nie ma co kombinować. Próbuj go odpalić na porcie 8080. Jeśli pliki są dobre, to powinno być git.
@tonamini: spoko, kumam :)

odpalać to on mi się odpala tylko właśnie problem polega na tym, że w

webServerService.gcdWebServer.addGETHandler(forBasePath: "/", directoryPath: firstGameFolderPath!, indexFilename: "index.html", cacheAge: 0, allowRangeRequests: true)
podaje bundle z grą, a nie wiem gdzie i jak zrobić by do tego jeszcze dołączał pliki wspólne które są w innym folderze referencyjnym. Bo jak widzisz w kodzie dla niego jakby root to jest folder z grą i w sumie to on
@duchu0: Przejrzałem tę bibliotekę GCDWebServer i nie wydaje mi się, żeby była możliwość zrobić to tak jak sobie zaplanowałeś. Po prostu wgrywanie zasobów jest ograniczone do jednego folderu, ewentualnie możesz sam wczytać pliki do pamięci jako NSData i użyć tego:

- (void)addGETHandlerForPath:(NSString*)path staticData:(NSData*)staticData contentType:(nullable NSString*)contentType cacheAge:(NSUInteger)cacheAge;
Ale nie wiem czy to taki dobry pomysł trzymać wszystko w pamięci. Inne dwa rozwiązania:
1. Użyć inny serwer
2. Skopiować te wspólne pliki do
@lawicko: udało mi się to ogarnąć, nie ma to jak praca zespołowa jednak ;) Co prawa w troszkę bardzo pokrętny sposób bo GCDWebServer teraz jako / widzi całą strukturę aplikacji (mam świadomość, że to złe podejście), następnie jako ścieżkę uruchamiania gry podaje jako game1/index.html i działa. Tak czy siak coś nowego się nauczyłem.
Dzięki Panowie @lawicko i @tonamini za zainteresowanie