Wpis z mikrobloga

Jestem zielony w objective-c ale zostałem zmuszony do napisania prostego liba, który zwróci mi zdjęcia i filmy z mojej biblioteki na telefonie. Napotkałem na pewien problem podczas generowania ścieżki do pliku. Dla zdjęć wszystko jest ok, ale dla plików video nie do końca. Robie to w prymitywny sposób

NSString *filename = [asset.localIdentifier substringWithRange:NSMakeRange(0, 36)];
NSString *url = [NSString stringWithFormat:@"assets-library://asset/asset.MOV?id=%@&ext=MOV", filename];

Chodzi o to, że generuje mi ścieżkę do pliku, ale po odczytaniu pliku na podstawie tej ścieżki okazuje sie, że to jest obrazek (1 klatka filmu).

Na stackoverflow widzialem, że ludzie generowali ścieżkę w podobny sposób, z tym, że ja dostaje ścieżkę w następującej postaci:

assets-library://asset/asset.MOV?id=C39720AB-A8D7-4B3A-897D-070A77E57B9A&ext=MOV

zamiast takiej

assets-library://asset/asset.MOV?id=1000000394&ext=MOV


Jest ktoś mi w stanie pomóc?

#programowanie #objectivec #ios #swift
  • 39
@wczoraj: niestety to nic nie dało. Dziwna sprawa, bo w uploaderze mam ten sam kod PHImageManager co w mojej bibliotece, i jak biorę podgląd na result, to w mojej bibliotece jest obrazek, a w uploaderze "Could not load Quick Look data for “result”"
@siwymilek: próbuj może NSMutableDictionary przekazywać z tym wszystkim, tak jak wcześniej pisałem:

moze na dalszym etapie nie mozesz sie dostac do wszytskich elementow

dlaczego nie chcesz przekazac do uploadera juz przygotowanego bas 64, mnie uczono ze uploader ma uploadowac i nie powinien sie martwic o wyciaganie zdjec z linkow itp
@siwymilek: to wybierasz, obrabiasz wszystko i sam base64 do uploadera, tak zeby poszczegolne klasy byly odpowiedzialne za odpowiednie dla nich rzeczy.

Ale to nieważne, jestes pewien ze przychodzi do uploadera cala lista wybranych zdjec tylko potem request zwraca nil? dla video jest ok?
@wczoraj: nie chcę zaorać pamięci, każde zdjęcie to ok 1.5MB.

Jestem pewny, że do uploadera przekazuje poprawny URL do pliku. On ten plik wczytuje (nawet asset.localIdentifier się zgadza), ale tak jakby nie potrafił odczytać zawartosci pliku.

Jest możliwe, że nie może otworzyć pliku, bo mam otwarty plik w innym wątku (w mojej bibliotece)?
@wczoraj: to jest jakieś #!$%@?... w tym samym pliku, co wyciągam te zdjęcia, zrobiłem funkcje test i w odczytuje zdjęcia i działa, skopiowałem tę funkcję do tego pliku z uploaderem i tam nie działa. Masz może jakiś pomysł jeszcze?
@wczoraj react to nie hybrydowe appki, tylko emulowane UI, ale mniesza o to, bo i ta robię natywną bibliotekę.
znalazłem chyba problem, dałem teraz requestOptionForPhotos.synchronous = YES i działa, tylko nie do końca mnie to zadowala, bo dla filmów nie mogę ustawić synchronous (i w sumie w ogole nie chcę, żeby wykonywało się w głównym wątku), tylko dlaczego nie chce mi załadować tego pliku asynchronicznie?