Dodatkowe zmiany struktury systemu tvOS 10
Oprócz istotnych zmian w systemie tvOS firma Apple wprowadziła modyfikacje i ulepszenia kilku istniejących struktur w systemie tvOS 10.
Dodatki struktury AVFoundation
Struktura AVFoundation obejmuje następujące ulepszenia:
- W systemie tvOS 10 aplikacja nie implementuje już 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
AVPlayerLooper
klasa ułatwia zapętlenie danego fragmentu nośnika podczas odtwarzania.
Ulepszenia struktury AVKit Framework
Struktura AVKit zawiera następujące ulepszenia:
- Aplikacja ma teraz kontrolę nad zachowaniem pomijania elementu AVPlayerViewController , więc gest pomijania może przejść do następnego elementu na liście odtwarzania lub przejść do bieżącego elementu.
Ulepszenia podstawowych danych
System tvOS 10 zawiera następujące ulepszenia struktury danych podstawowych:
- Główne obiekty NSManagedObjectContext obsługują współbieżne błędy i pobieranie bez serializacji.
- Klasa NSPersistentStoreCoordinator obsługuje pulę magazynów danych SQLite.
- 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.
- Korzystając z wysokiego poziomu
NSPersistenceContainer
, aby odwołaćNSPersistentStoreCoordinator
się do , NSManagedObjectModel i innych podstawowych zasobów konfiguracji danych. - Dodano kilka nowych metod wygody, aby
NSManagedObject
ułatwić pobieranie i tworzenie podklas.
Aby uzyskać więcej informacji, zobacz Dokumentację podstawowej struktury danych firmy Apple.
Podstawowe ulepszenia grafiki
System tvOS 10 zawiera następujące ulepszenia struktury grafiki Core:
- Nowa klasa CGColorConverterRef może służyć do wykonywania serii konwersji kolorów.
Ulepszenia obrazów podstawowych
System tvOS 10 wprowadza następujące ulepszenia w strukturze obrazów podstawowych:
- Metoda
ImageWithExtent
klasy 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. - Aplikacja 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.
- Wprowadzono kilka ulepszeń wydajności renderowania w celu
UIImage
renderowania (w przypadku przechowywania obrazów podstawowych obrazów) wUIImageView
obiektach. UIImage
obiekty oznaczone szeroką gamą będą renderowane jako szeroki kolorUIImageView
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.
Ponadto dodano następujące nowe filtry obrazów podstawowych:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Ulepszenia podstaw
Wprowadzono następujące ulepszenia platformy Foundation dla systemu tvOS 10:
- 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.
- Do klasy NSLocal dodano kilka nowych właściwości w celu uzyskania informacji lokalnych i dostępnych formatów wyświetlania.
- Użyj nowej klasy NSMeasurement , aby przekonwertować różne jednostki miary (UOM) lub wykonać obliczenia na wartości w różnych UOM.
- Użyj nowej klasy NSMeasurementFormatter , aby sformatować zlokalizowane miary do wyświetlania użytkownikowi końcowemu.
- Użyj nowych klas NSUnit i NSDimension do reprezentowania określonych UOM.
Ulepszenia zestawu GameKit
Następujące ulepszenia zostały wprowadzone w strukturze GameKit w systemie tvOS 10:
- 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 implementację sposobu i czasu przechowywania daty uczestnika, 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 tvOS 10:
- 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.
- Dodano nowy interfejs API drzewa decyzyjnego (GKDecisionTree i GKDecisionNode), aby ulepszyć sztuczną inteligencję tworzenia gier.
- Obsługa 3D została dodana do istniejących zachowań agenta i znajdowania ścieżek przy użyciu nowych klas GKAgent3D i GKGraphNode3D .
- Użyj nowej klasy GKMeshGraph , aby zapewnić ścieżki o wysokiej wydajności, naturalnie wyglądające.
- Nowe klasy GKScene i GKSKNodeComponent ułatwiają łączenie zestawów Rozgrywki i SpriteKit niż kiedykolwiek.
Ulepszenia systemu operacyjnego
Wprowadzono następujące ulepszenia platformy Metal w systemie tvOS 10:
- Aplikacje i gry 3D mogą teraz używać tessellation do wydajnego renderowania złożonych scen i geometrii za pośrednictwem procesora GPU.
- Użyj specjalizacji funkcji, aby utworzyć wysoce zoptymalizowaną kolekcję funkcji kombinacji materiału i światła dla sceny.
- 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.
Aby dowiedzieć się więcej, zobacz Podręcznik programowania metalowego firmy Apple.
Ulepszenia cieniowania wydajności metali
W systemie tvOS 10 wprowadzono następujące ulepszenia w strukturze Cieniowania wydajności systemu Metal:
- Do struktury Cieniowania wydajności metali dodano wiele nowych jąder, aby umożliwić aplikacji korzystanie z obliczeń o wysokiej optymalizacji równoległych danych, takich jak konwersje przestrzeni kolorów i operacje sieci neuronowej.
Ulepszenia modeluIO
Następujące ulepszenia zostały wprowadzone w strukturze ModelIO w systemie tvOS 10:
- Format pliku USD jest teraz obsługiwany.
- Użyj nowej
MDLMaterialPropertyGraph
klasy, aby łatwo obsługiwać zmiany środowiska uruchomieniowego w modelach. - Obsługa pola z podpisem została dodana do klasy MDLVoxelArray .
- Użyj nowej
MDLLightProbeIrradianceDataSource
klasy, aby pomóc w umieszczaniu sondy światła.
Ulepszenia zestawu ScenKit
Następujące ulepszenia zostały wprowadzone w strukturze SceneKit w systemie tvOS 10:
- 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 (
Diffuse
iMetalness
Roughness
). - 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 obrazach do opalania całej sceny. IESProfileURL
Użyj właściwości , aby zaimportować rzeczywiste oprawy światła, które definiują oświetlenie oparte na rzeczywistych wartościach, takich jak intensywność (w światłach) i temperatura koloru (w stopniach Kelvin).- 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 filmowe do gry.
- 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.
- 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.
- Renderowanie przestrzeni kolorów liniowych i kolor szeroki można wyłączyć, określając
SCNDisableLinearSpaceRendering
klucze iSCNDisableWideGamut
w aplikacjiInfo.plist
. - Utwórz dowolne wielokątne naczelne (ładowane z plików lub generowane programowo), aby określić geometrię przy użyciu nowej klasy SCNGeometryPrimitiveTypePolygon .
Ulepszenia zestawu SpriteKit
Następujące ulepszenia zostały wprowadzone w strukturze SpriteKit w systemie tvOS 10:
- Mapy kafelków obsługują teraz kształty kafelków kwadratowych, sześciokątnych i izometrycznych dla gier 2D, 2,5D i przewijania bocznego
SKTileMapMode
przy użyciu klas ,SKTileGroup
SKTileGroupRule
iSKTileSet
. - 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. - 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
). - Klasa SKView udostępnia kilka nowych metod, które zapewniają szczegółową kontrolę nad tym, kiedy i jak scena jest renderowana.
Ulepszenia zestawu UIKit
Następujące ulepszenia zostały wprowadzone w strukturze UIKit w systemie tvOS 10:
- Interfejs API fokusu został rozszerzony w celu obsługi fokusu elementu nieoglądanego oprócz
UIViews
elementu . Elementy obsługujące fokus muszą implementowaćIUIFocusItem
interfejs. - Nowa
UIGraphicsRender
klasa udostępnia obiektową metodę tworzenia map bitowych lub plików PDF z renderowania UIKit lub grafiki core i zastępuje przestarzałąUIGraphicsBeginImageContext
metodę. - Dodano klasę
UIUserInterfaceStyle
w celu określenia, który motyw interfejsu użytkownika (ciemny lub jasny) jest obecnie aktywny. - Dodano nową w pełni interaktywną, opartą na obiektach obsługę animacji przerywanej, a furgonetka jest połączona z gestami. Aby uzyskać więcej informacji, zobacz Odwołanie do protokołu UIViewAnimating firmy Apple, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference and UISpringTimingParameter Class Reference (Dokumentacja klasy UICubicTimingParameter) i UISpringTimingParameter Class Reference (Dokumentacja klasy UICubicTimingParameters).
- Nowe
UIPreviewInteraction
iUIPreviewInteractionDelegate
umożliwiają aplikacji udostępnianie interfejsu niestandardowego 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.- 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.
- Aby obsługiwać typ dynamiczny w etykietach, pola tekstowe i pola tekstowe używają nowej
PreferredFontForTextStyle
metodyUIFont
klasy. - Aby zdecydować, czy element powinien zaktualizować czcionkę, gdy zmienią się urządzenia
UIContentSizeCategory
, użyjAdjustsFontForContentSizeCategory
właściwości delegataUIContentSizeCategoryAdjusting
. - Aplikacja może teraz kontrolować wygląd znaczka dla elementów paska kart, takich jak tekst i kolor tła.
- Kontrolka Odświeżanie w systemie jest teraz obsługiwana we wszystkich podklasach widoku przewijania i widoku przewijania (takich jak
UICollectionView
). OpenURL
MetodaUIApplication
klasy jest wywoływana asynchronicznie obsługuje teraz program obsługi uzupełniania, który jest wywoływany po zakończeniu otwierania.- Zainicjuj udostępnianie zestawu CloudKit i zmodyfikuj jego właściwości przy użyciu nowych
UICloudSharingController
klas iUICloudSharingControllerDelegate
. - Skorzystaj z wstępnie pobranych komórek, aby poprawić środowisko przewijania
UICollectionViews
nowego delegataUICollectionViewDataSourcePrefetching
.