2015-07-09 42 views
9

Próbowałem zmodyfikować mój projekt, aby obsługiwał architekturę WatchOS2. Obecnie mam strukturę sieci opartą na AFNetworking. Używałem go do tej pory z moją aplikacją do zegarka. Teraz próbuję zbudować ramy dla platform watchos/watchsimulator.Czy mogę zbudować własne ramy sieciowe (zależne od AFNetworking) jako szkielet watchOS2?

Co otrzymuję to Nie znaleziono pliku "SystemConfiguration/SystemConfiguration.h" błąd niektórych klas AFNetworking.

Wiem, że konfiguracja systemu nie jest jedną z dostępnych ram systemowych dla watchOS2. I dla Apple says Sieć:

Networking

Wsparcie dla operacji sieciowych obejmuje następujące technologie:

rozszerzenia WatchKit może uzyskać dostęp do sieci bezpośrednio z obiektu NSURLSession. Rozszerzenia WatchKit mają pełny dostęp do funkcji NSURLSession, w tym możliwość pobierania plików w tle. Aby uzyskać informacje na temat korzystania z tej klasy, zobacz URL Ładowanie Przewodnik po programowaniu systemu. Architektura Watch Connectivity obsługuje dwukierunkową komunikację między aplikacją Watch a aplikacją na iOS. Użyj tej struktury do koordynowania działań między dwiema aplikacjami. Aby uzyskać więcej informacji, zobacz Nawiązywanie połączeń z aplikacją iOS dla aplikacji Companion.

Chcę obsługiwać zarówno system iOS, jak i watchos dla mojego sieciowego sdk. Czy istnieje sposób na zbudowanie tego projektu dla platformy watchOS? Czy to oznacza, że ​​mogę używać tylko NSURLConnection w mojej aplikacji do zegarka?

Odpowiedz

0

Według AFNetworking documentation:

URL Ładowanie najczęściej używane w systemie klas URL załadunku umożliwić aplikacja do pobierania zawartości URL ze źródła. Ty, , możesz pobrać tę zawartość na wiele sposobów, w zależności od wymagań Twojej aplikacji w zakresie . API wybrać zależy od wersji OS X i iOS aplikacja jest przeznaczona i czy chcesz, aby uzyskać dane w postaci pliku lub bloku w pamięci danych:

  • w iOS 7 i nowszym lub OS X 10.10 i nowsze wersje, NSURLSession jest preferowanym API dla nowego kodu, który wykonuje żądania URL.

Jeśli spojrzeć na wykresach na tej stronie, oznacza to, że AFNetworking faktycznie korzysta NSURLSession w niektórych przypadkach. Ponieważ jednak szkielet SystemConfiguration nie jest dostępny w zestawie watchkit, należy usunąć tę zależność, aby uwzględnić AFNetworking zarówno w aplikacjach na iOS, jak i na urządzeniach typu watchkit.

Nie jestem pewien, co AFNetworking używa tej platformy (jest to prawdopodobnie bardzo ważne!), Ale jeśli istnieją pewne pliki, które nie byłyby potrzebne te ustawienia w aplikacji zegarka można modyfikować kod źródłowy AFNetworking nie należą do tych elementów na aplikacji Watch:

#if os(iOS) 
// Include SystemConfiguration framework 
#elseif os(watchOS) 
// Exclude SystemConfiguration framework 
#endif 
0

Oto ostatnie popełnić na github dla AFNetworking do obsługi WatchOS.

Patrząc na changelog ..

Version 2.6.0 obsługuje watchOS ...

Ta wersja obsługuje teraz watchOS 2.0, który opiera się na docelowych warunkach, które są obecne tylko w Xcode 7 i iOS 9/watchOS 2.0/OS X 10.10. Jeśli zainstalujesz bibliotekę przy użyciu CocoaPods, AFNetworking będzie definiować te warunki docelowe na starszych platformach, pozwalając, aby Twój kod się zgodził. Jeśli nie używasz Cocoapods, będziesz musiał dodać następujący kod do pliku PCH.