Udostępnij za pośrednictwem


Dodatkowe zmiany struktury systemu iOS 10

W tym artykule omówiono dodatkowe, drobne zmiany lub ulepszenia istniejących struktur dla systemu iOS 10.

Dodatki struktury AV Foundation

Struktura AVFoundation obejmuje następujące ulepszenia:

  • W systemie iOS 10 deweloper nie musi już implementować różnych zachowań AVPlayerItem na podstawie typu zawartości. Po prostu ustaw Rate właściwość i AVFoundation określi, kiedy wystarczająca ilość zawartości jest dostępna do odtwarzania bez wstrzymania.
  • Nowa klasa AVCapturePhotoOutput zastępuje przestarzałą AVCaptureStillImageOutput klasę i zapewnia ujednoliconą metodę obsługi wszystkich przepływów pracy fotografii, zapewniając zaawansowaną kontrolę i monitorowanie procesu przechwytywania oraz obsługę nowych funkcji, takich jak Live Photos i format przechwytywania RAW.
  • Nowa AVPlayerLooper klasa ułatwia zapętlenie danego fragmentu nośnika podczas odtwarzania.
  • Klasa AVAssetDownloadURLSession umożliwia pobieranie i późniejsze odtwarzanie zaszyfrowanych strumieni HLS FairPlay.
  • Domyślnie klasa AVCaptureSession automatycznie obsługuje przechwytywanie szerokiej gamy, gdy sprzęt urządzenia go obsługuje. Aby uzyskać więcej informacji, zobacz Dokumentacja zgodności urządzeń z systemem iOS firmy Apple.

Dodatki zestawu AVKit

Struktura AVKit zawiera teraz nową UpdatesNowPlayingInfoCenter właściwość wskazującą, kiedy ma zostać zaktualizowane Centrum informacji o odtwarzaniu.

Ulepszenia podstawowych danych

System iOS 10 zawiera następujące ulepszenia struktury danych podstawowych:

  • Obiekty NSManagedObjectContext z magazynami danych SQLite w trybie dziennika WAL obsługują nową funkcję generowania zapytań, w której konteksty obiektów zarządzanych (MOC) można przypiąć do określonych wersji bazy danych na potrzeby przyszłych transakcji pobierania i błędów.
  • Główne obiekty NSManagedObjectContext obsługują współbieżne błędy i pobieranie bez serializacji.
  • Klasa NSPersistentStoreCoordinator obsługuje pulę magazynów danych SQLite.
  • Dodano kilka nowych metod wygody, aby NSManagedObject ułatwić pobieranie i tworzenie podklas.
  • Korzystając z wysokiego poziomu NSPersistenceContainer , aby odwołać NSPersistentStoreCoordinatorsię do , NSManagedObjectModel i innych podstawowych zasobów konfiguracji danych.

Aby uzyskać więcej informacji, zobacz Dokumentację podstawowej struktury danych firmy Apple.

Ulepszenia obrazów podstawowych

System iOS 10 wprowadza następujące ulepszenia w strukturze obrazów podstawowych:

  • Deweloper może teraz przetwarzać obrazy w przestrzeni kolorów poza obszarem roboczym kontekstu obrazu podstawowego, konwertując i wychodząc z przestrzeni kolorów przed i po przetworzeniu.
  • W przypadku urządzeń z systemem iOS korzystających z procesorów A8 lub A9 format obrazu RAW jest teraz obsługiwany. Obraz podstawowy zapewnia teraz obsługę dekodowania obrazów RAW z wbudowanej kamery iSight lub aparatu innej firmy. FilterWithImageData Użyj metod lub FilterWithImageURL klasy CIFilter do przetwarzania obrazów RAW.
  • Wprowadzono kilka ulepszeń wydajności renderowania w celu UIImage renderowania (w przypadku przechowywania obrazów podstawowych obrazów) w UIImageView obiektach.
  • UIImage obiekty oznaczone szeroką gamą będą renderowane jako szeroki kolor UIImageView w obiektach na urządzeniach z systemem iOS, które obsługują szeroki kolor.
  • Kod jądra obrazu podstawowego może teraz żądać określonych formatów danych wyjściowych pikseli.
  • Metoda ImageWithExtentklasy CIFilter może służyć do wstawiania niestandardowego przetwarzania do operacji filtrowania. Obraz podstawowy wywoła daną wywołanie zwrotne między filtrami podczas przetwarzania obrazu dla danych wyjściowych lub wyświetlania.

Ponadto dodano następujące nowe filtry obrazów podstawowych:

  • CINinePartTiled
  • CINinePartStretched
  • CIHueSaturationValueGradient
  • CIEdgePreserveUpsampleFilter
  • CIClamp

Dodatki ruchu rdzenia

Nowa wersja dla systemu iOS 10, platforma Core Motion zawiera zdarzenia krokomierza, które umożliwiają aplikacji odbieranie szybkich, w czasie rzeczywistym powiadomień o wstrzymaniu i wznowieniu śledzenia użytkownika podczas działania. Użyj narzędzia CMPedometer, aby zarejestrować się na pierwszym planie lub w tle zdarzeń krokomierza.

Ulepszenia podstaw

Następujące ulepszenia zostały wprowadzone w strukturze Foundation dla systemu iOS 10:

  • Użyj nowej klasy NSMeasurementFormatter , aby sformatować zlokalizowane miary do wyświetlania użytkownikowi końcowemu.

  • Użyj nowej klasy NSDateInterval , aby wykonać obliczenia interwału daty i godziny, takie jak czasy trwania, do porównywania interwałów i testowania pod kątem przecięcia interwałów.

  • Użyj nowej klasy NSMeasurement , aby przekonwertować różne jednostki miary (UOM) lub wykonać obliczenia na wartości w różnych UOM.

  • Użyj nowych klas NSUnit i NSDimension do reprezentowania określonych UOM.

  • Do klasy NSLocal dodano kilka nowych właściwości w celu uzyskania informacji lokalnych i dostępnych formatów wyświetlania.

Ulepszenia zestawu GameKit

Następujące ulepszenia zostały wprowadzone w strukturze GameKit w systemie iOS 10:

  • Aplikacja Game Center została wycofana i usunięta z systemu iOS. Jeśli aplikacja używa zestawu GameKit, musi przedstawić własny interfejs do wyświetlania funkcji zestawu GameKit, takich jak rankingi itp.
  • Nowy typ konta tylko w usłudze iCloud został zaimplementowany przez klasę GKCloudPlayer .
  • Nowa klasa GKGameSession udostępnia uogólnione rozwiązanie do zarządzania trwałym magazynem danych w usłudze Game Center. GKGameSession Utrzymuje listę graczy, a aplikacja jest odpowiedzialna za wdrażanie sposobu i czasu przechowywania, pobierania lub wymiany między graczami. W wielu przypadkach sesje gier mogą zastąpić istniejące mecze oparte na kolei, mecze w czasie rzeczywistym lub trwałe metody zapisywania gier.

Ulepszenia zestawu rozgrywkowego

Następujące ulepszenia zostały wprowadzone w strukturze GameplayKit w systemie iOS 10:

  • Użyj nowej klasy GKMeshGraph , aby zapewnić ścieżki o wysokiej wydajności, naturalnie wyglądające.
  • Dodano generowanie szumów proceduralnych i może służyć do zwiększenia realizmu w naturalnych teksturach, dodać realizm do ruchów kamer i pomóc w generowaniu bogatych światów gier.
  • Partycjonowanie przestrzenne umożliwia partycjonowanie danych świata gry w celu wydajnego wyszukiwania.
  • Dodano nowego stratega Monte Carlo (GKMonteCarloStrategist) w celu uzyskania wyczerpujących możliwych obliczeń przenoszenia.
  • Obsługa 3D została dodana do istniejących zachowań agenta i znajdowania ścieżek przy użyciu nowych klas GKAgent3D i GKGraphNode3D .
  • Nowe klasy GKScene i GKSKNodeComponent ułatwiają łączenie zestawów Rozgrywki i SpriteKit niż kiedykolwiek.
  • Dodano nowy interfejs API drzewa decyzyjnego (GKDecisionTree i GKDecisionNode), aby ulepszyć sztuczną inteligencję tworzenia gier.

Ulepszenia zestawu healthkit

Następujące ulepszenia zostały wprowadzone w strukturze HealthKit w systemie iOS 10:

  • Dodano nowe klucze metadanych dla typów pogody (takich jak i HKWeatherConditionCloudy) i typów treningów (takich jak HKWorkoutActivityTypeFlexibilityHKWeatherConditionClear i HKWorkoutActivityTypeWheelchairRunPace).
  • Dodano nową HKCDADocument klasę do reprezentowania dokumentu sformatowanego w dokumencie klinicznym (CDA).
  • Użyj nowej klasy HKWorkoutConfiguration , aby określić ActivityType wartości i LocationType treningu.
  • Dodano nową klasę HKWheelchairUseObject i WheelchairUse metodę klasy HKHealthStore do pracy z danymi o zdrowiu związanymi z wózkami inwalidzkimi.

Ulepszenia zestawu homekit

Następujące ulepszenia zostały wprowadzone w strukturze HomeKit w systemie iOS 10:

  • Dodano nowe usługi i cechy.
  • Tablet iPad można skonfigurować tak, aby działał jako HomeKit Hub w celu zapewnienia dostępu dostępu zdalnego, uruchamiania wyzwalaczy automatyzacji i włączania uprawnień użytkowników udostępnionych.
  • Dodano obsługę akcesoriów do aparatów i dzwonek do drzwi.
  • Dla akcesoriów udostępniono więcej kontekstów i konfiguracji.

Aby uzyskać więcej informacji, zobacz dokumentację Wprowadzenie do zestawu HomeKit .

Ulepszenia systemu operacyjnego

Następujące ulepszenia zostały wprowadzone w strukturze Metal w systemie iOS 10:

  • Aplikacje i gry 3D mogą teraz używać tessellation do wydajnego renderowania złożonych scen i geometrii za pośrednictwem procesora GPU.
  • Zapewnij szczegółową kontrolę nad alokacją zasobów, aby zoptymalizować wydajność aplikacji opartych na systemie Metal przy użyciu sterty zasobów i obiektów docelowych renderowania bez pamięci.
  • Użyj specjalizacji funkcji, aby utworzyć wysoce zoptymalizowaną kolekcję funkcji kombinacji materiału i światła dla sceny.

Aby dowiedzieć się więcej, zobacz Podręcznik programowania metalowego firmy Apple.

Ulepszenia modeluIO

Następujące ulepszenia zostały wprowadzone w strukturze ModelIO w systemie iOS 10:

  • Format pliku USD jest teraz obsługiwany.
  • Obsługa pola z podpisem została dodana do klasy MDLVoxelArray .
  • Użyj nowej MDLLightProbeIrradianceDataSource klasy, aby pomóc w umieszczaniu sondy światła.
  • Użyj nowej MDLMaterialPropertyGraph klasy, aby łatwo obsługiwać zmiany środowiska uruchomieniowego w modelach.

Ulepszenia zdjęć

Następujące ulepszenia zostały wprowadzone w strukturze Photos w systemie iOS 10:

  • Użyj klas CIImageProcessorInput i CIImageProcessorOutput, aby skorzystać z nowej funkcji procesora obrazów core do wykonywania edycji.
  • Edytowanie zdjęć na żywo jest teraz dostępne dla aplikacji, które obsługują strukturę Photos oraz rozszerzenia do edycji zdjęć (do użytku w aplikacjach Zdjęcia i Aparat).
  • Użyj nowej klasy PHLivePhotoEditingContext , aby zastosować edycje zarówno do wideo, jak i zawartości live photos.

Ulepszenia zestawu replayKit

Następujące ulepszenia zostały wprowadzone w strukturze ReplayKit w systemie iOS 10:

Ulepszenia zestawu ScenKit

Następujące ulepszenia zostały wprowadzone w strukturze SceneKit w systemie iOS 10:

  • Klasa SCN Aparat może zapewnić większy realizm przy użyciu funkcji i efektów HDR. Użyj adaptacyjnej ekspozycji, aby tworzyć efekty automatyczne lub używać winietowania, frędowania kolorów i klasyfikacji kolorów, aby dodać efekty fillmatic do gry.
  • Zestaw SceneKit zawiera teraz nowy system renderowania fizycznego (PBR) w celu uzyskania bardziej realistycznych wyników z prostszym tworzeniem zasobów.
  • Użyj nowego modelu cieniowania SCNLightingModelPhysicallyBased , aby zapewnić szeroką gamę realistycznych efektów cieniowania, jednocześnie wymagając tylko trzech podstawowych właściwości (Diffusei MetalnessRoughness).
  • Ponieważ cieniowanie PBR działa najlepiej w przypadku oświetlenia opartego na środowisku, użyj LightingEnvironment właściwości , aby przypisać oświetlenie oparte na obrazie do całej sceny.
  • IESProfileURL Użyj właściwości , aby zaimportować rzeczywiste oprawy światła, które definiują oświetlenie na podstawie rzeczywistych wartości, takich jak intensywność (w światłach) i temperatura koloru (w stopniach Kelvin).
  • Funkcje aparatu PBR i HDR zapewniają lepsze wyniki niż tradycyjne techniki renderowania, a w rezultacie zestaw SceneKit wykonuje teraz wszystkie obliczenia kolorów w liniowej przestrzeni kolorów (przy użyciu gamy kolorów P3 na wyświetlaczach urządzenia w szerokim kolorze).
  • Zestaw sceny jest teraz zgodny ze wszystkimi kolorami, odczytując informacje o profilu kolorów.
  • Zestaw SceneKit interpretuje wartości składników kolorów w liniowej przestrzeni kolorów RGB dla wszystkich typów cieniowania.
  • Renderowanie przestrzeni kolorów liniowych i kolor szeroki można wyłączyć, określając SCNDisableLinearSpaceRendering klucze i SCNDisableWideGamut w aplikacji Info.plist.
  • Utwórz dowolne wielokątne naczelne (ładowane z plików lub generowane programowo), aby określić geometrię przy użyciu nowej klasy SCNGeometryPrimitiveTypePolygon .
  • Ponieważ zestaw SceneKit odczytuje i dostosowuje informacje o profilu kolorów na obrazach tekstur, użyj katalogów zasobów dla wszystkich obrazów, aby upewnić się, że te informacje są dostarczane.

Ulepszenia zestawu SpriteKit

Następujące ulepszenia zostały wprowadzone w strukturze SpriteKit w systemie iOS 10:

  • Niestandardowe cieniowania mogą udostępniać atrybuty (SKAttribute), które można skonfigurować oddzielnie przez każdy węzeł używający cieniowania, podając wartość atrybutu (SKAttributeValue).
  • Mapy kafelków obsługują teraz kształty kafelków kwadratowych, sześciokątnych i izometrycznych dla gier 2D, 2,5D i przewijania bocznego SKTileMapModeprzy użyciu klas , SKTileGroupSKTileGroupRule i SKTileSet .
  • Użyj nowej SKWarpGeometry klasy, aby rozciągnąć lub zniekształcić renderowanie SKSpriteNode lub SKEffectNode . Nowa klasa SKAction może służyć do animowania przejść między efektami warp.
  • Klasa SKView udostępnia kilka nowych metod, które zapewniają szczegółową kontrolę nad tym, kiedy i jak scena jest renderowana.

Ulepszenia funkcji ScrollView

Wprowadzono następujące ulepszenia kontrolki ScrollView w systemie iOS 10.3:

  • UIScrollView Teraz uwzględnij IndexDisplayMode właściwość , aby kontrolować sposób wyświetlania indeksu, gdy użytkownik przewija się w następujący sposób UIScrollViewIndexDisplayMode :
    • Automatic — Wyświetlanie indeksu jest kontrolowane przez system operacyjny.
    • AlwaysHidden — Wyświetlanie indeksu jest zawsze ukryte.

Ulepszenia zestawu UIKit

Następujące ulepszenia zostały wprowadzone w strukturze UIKit w systemie iOS 10:

  • Nowy interfejs API UIPasteboard udostępnia nowe opcje (takie jak ograniczenia okresu istnienia) i automatycznie deklaruje zgodne typy zawartości dla typowych typów klas.
  • Dodano nową w pełni interaktywną, opartą na obiektach obsługę animacji przerywanej i mogą być połączone z gestami. Aby uzyskać więcej informacji, zobacz Dokumentację protokołu UIViewAnimating firmy Apple, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference (Dokumentacja klasy UICubicTimingParameter) i UISpringTimingParameter Class Reference (Dokumentacja klasy UICubicTimingParameters).
  • Nowa UIPreviewInteractionUIPreviewInteractionDelegate aplikacja dewelopera udostępnia interfejs niestandardowy do wyświetlania i wyświetlania operacji pop.
  • Nowa UIAccessibilityCustomRotor klasa umożliwia aplikacji udostępnianie niestandardowych, specyficznych dla kontekstu funkcji ułatwiania obsługi technologii, takich jak Voice Over.
  • UIAccessibilityIsAssistiveTouchRunning Użyj symboli iUIAccessibilityAssistiveTouchStatusDidChangeNotification, aby określić, czy funkcja AssistiveTouch jest włączona.
  • UIAccessibilityHearingDevicePairedEar Użyj symboli iUIAccessibilityHearingDevicePairedEarDidChangeNotification, aby uzyskać stan wszystkich sparowanych aparatów słuchowych MFi.
  • Aby obsługiwać typ dynamiczny w etykietach, pola tekstowe i pola tekstowe używają nowej PreferredFontForTextStyle metody UIFont klasy.
  • Aby zdecydować, czy element powinien zaktualizować czcionkę po zmianie urządzenia UIContentSizeCategory , użyj AdjustsFontForContentSizeCategory właściwości delegata UIContentSizeCategoryAdjusting .
  • OpenURL Metoda UIApplication klasy jest wywoływana asynchronicznie, a teraz obsługuje program obsługi uzupełniania, który jest wywoływany po zakończeniu akcji otwierania.
  • Zainicjuj udostępnianie zestawu CloudKit i zmodyfikuj jego właściwości przy użyciu nowych UICloudSharingController klas i UICloudSharingControllerDelegate .
  • Skorzystaj z wstępnie pobranych komórek, aby poprawić środowisko przewijania UICollectionViews nowego delegata UICollectionViewDataSourcePrefetching .
  • Deweloper może teraz kontrolować wygląd znaczka dla elementów paska tabulacji (takich jak tekst i kolor tła).
  • Kontrolka Odświeżanie jest teraz obsługiwana we wszystkich podklasach widoku przewijania i widoku przewijania (takich jak UICollectionView).

Ulepszenia zestawu WebKit

Następujące ulepszenia zostały wprowadzone w strukturze WebKit w systemie iOS 10:

  • Obsługa podglądu WKWebView i wyskakującego okienka została dodana do klasy. ShouldPreviewElement Użyj metody , aby określić, czy dany widok internetowy powinien wyświetlać podgląd.