Zusätzliche TvOS 10 Frameworks-Änderungen
Neben den großen Änderungen an tvOS hat Apple Änderungen und Verbesserungen an mehreren vorhandenen Frameworks in tvOS 10 vorgenommen.
Ergänzungen des AVFoundation Framework
Das AVFoundation-Framework enthält die folgenden Verbesserungen:
- In tvOS 10 implementiert die App nicht mehr verschiedene AVPlayerItem-Verhaltensweisen basierend auf dem Inhaltstyp. Legen Sie einfach die
Rate
Eigenschaft fest, und AVFoundation bestimmt, wann genügend Inhalte für die Wiedergabe verfügbar sind, ohne dass dies angehalten wird. - Die neue
AVPlayerLooper
Klasse erleichtert die Schleife eines bestimmten Medienteils während der Wiedergabe.
Verbesserungen des AVKit-Frameworks
Das AVKit-Framework enthält die folgenden Verbesserungen:
- Die App hat jetzt die Kontrolle über das Überspringungsverhalten des AVPlayerViewController , sodass eine Überspringungsgeste möglicherweise zum nächsten Element in der Wiedergabeliste wechselt oder innerhalb des aktuellen Elements voranschreiten kann.
Kerndatenverbesserungen
tvOS 10 enthält die folgenden Verbesserungen am Core Data Framework:
- Stammobjekte von NSManagedObjectContext unterstützen gleichzeitiges Fehlerhaftes und Abrufen ohne Serialisierung.
- Die NSPersistentStoreCoordinator-Klasse Standard enthält einen Pool von SQLite-Datenspeichern.
- Die NSManagedObjectContext-Objekte mit SQLite-Datenspeichern im WAL-Journalmodus unterstützen das neue Feature zur Abfragegenerierung, bei dem verwaltete Objektkontexte (Managed Object Contexts, MOC) an bestimmte Datenbankversionen angeheftet werden können, um zukünftige Abfragen und fehlerhafte Transaktionen zu erhalten.
- Verwenden der allgemeinen Ebene
NSPersistenceContainer
, um auf dasNSPersistentStoreCoordinator
NSManagedObjectModel und andere Core Data-Konfigurationsressourcen zu verweisen. - Es wurden mehrere neue Komfortmethoden hinzugefügt, um
NSManagedObject
das Ausführen von Abrufen und Erstellen von Unterklassen zu vereinfachen.
Weitere Informationen finden Sie in der Core Data Framework-Referenz von Apple.
Verbesserungen bei Kerngrafiken
tvOS 10 enthält die folgenden Verbesserungen am Core-Grafikframework:
- Die neue CGColorConverterRef-Klasse kann verwendet werden, um eine Reihe von Farbkonvertierungen durchzuführen.
Kernbildverbesserungen
tvOS 10 macht die folgenden Verbesserungen am Core Image Framework:
- Die
ImageWithExtent
Methode der CIFilter-Klasse kann verwendet werden, um benutzerdefinierte Verarbeitung in den Filtervorgang einzufügen. Das Kernbild ruft den angegebenen Rückruf zwischen Filtern auf, wenn ein Bild für die Ausgabe oder Anzeige verarbeitet wird. - Die App kann bilder jetzt in einem Farbraum außerhalb des Arbeitsfarbraums des Core Image-Kontexts verarbeiten, indem sie vor und nach der Verarbeitung in und aus dem Farbraum konvertiert werden.
- Es wurden mehrere Verbesserungen der Renderingleistung zum Rendern (bei der Sicherung durch Core Image Image-Speicher) in
UIImageView
Objekten vorgenommenUIImage
. UIImage
Objekte, die mit breitem Farbspektrum gekennzeichnet sind, werden in Objekten auf iOS-Geräten, die breite Farbe unterstützen, als Breite-Gamut-FarbeUIImageView
gerendert.- Core Image-Kernelcode kann jetzt bestimmte Pixelausgabeformate anfordern.
Darüber hinaus wurden die folgenden neuen Core Image-Filter hinzugefügt:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Foundation-Verbesserungen
Die folgenden Verbesserungen wurden am Foundation-Framework für tvOS 10 vorgenommen:
- Verwenden Sie die neue NSDateInterval-Klasse , um Datums- und Uhrzeitintervallberechnungen wie Dauer zu erstellen, um Intervalle zu vergleichen und Tests für Intervall-Schnittmengen durchzuführen.
- Der NSLocal-Klasse wurden mehrere neue Eigenschaften hinzugefügt, um lokale Informationen und die verfügbaren Anzeigeformate zu erhalten.
- Verwenden Sie die neue NSMeasurement-Klasse , um zwischen verschiedenen Maßeinheiten (UOM) zu konvertieren oder Berechnungen für Werte in verschiedenen UOMs durchzuführen.
- Verwenden Sie die neue NSMeasurementFormatter-Klasse , um lokalisierte Maße für die Anzeige für den Endbenutzer zu formatieren.
- Verwenden Sie die neuen NSUnit - und NSDimension-Klassen für die Darstellung bestimmter UOMs.
GameKit-Verbesserungen
Die folgenden Verbesserungen wurden am GameKit-Framework in tvOS 10 vorgenommen:
- Ein neuer iCloud-only-Kontotyp wurde von der GKCloudPlayer-Klasse implementiert.
- Die neue GKGameSession-Klasse bietet eine generalisierte Lösung zum Verwalten der dauerhaften Datenspeicherung im Game Center.
GKGameSession
Standard enthält eine Liste der Spieler und die App ist dafür verantwortlich, wie und wann das Teilnehmerdatum gespeichert, abgerufen oder zwischen Spielern ausgetauscht wird. In vielen Fällen können Spielsitzungen vorhandene rundenbasierte Übereinstimmungen, Echtzeit-Übereinstimmungen oder dauerhafte Spielspeichermethoden ersetzen.
GameplayKit-Verbesserungen
Die folgenden Verbesserungen wurden am GameplayKit-Framework in tvOS 10 vorgenommen:
- Die prozedurale Rauschgenerierung wurde hinzugefügt und kann verwendet werden, um den Realismus in natürlich aussehenden Texturen zu verbessern, Realismus zu Kamerabewegungen hinzuzufügen und dabei zu helfen, reichhaltige Spielwelten zu generieren.
- Verwenden Sie spatial Partitioning, um die Spielweltdaten für eine effiziente Suche zu partitionieren.
- Eine neue Monte Carlo-Strategistin (GKMonteCarloStrategist) wurde zur erschöpfenden möglichen Bewegungsberechnung hinzugefügt.
- Es wurde eine neue Entscheidungsstruktur-API (GKDecisionTree und GKDecisionNode) hinzugefügt, um die KI-Entwicklung des Spiels zu verbessern.
- Die 3D-Unterstützung wurde vorhandenen Agent- und Pfadsucheverhalten mithilfe der neuen GKAgent3D - und GKGraphNode3D-Klassen hinzugefügt.
- Verwenden Sie die neue GKMeshGraph-Klasse , um leistungsstarke, natürliche Pfade bereitzustellen.
- Die neuen Klassen GKScene und GKSKNodeComponent machen die Kombination von GameplayKit und SpriteKit einfacher denn je.
Metallverbesserungen
Die folgenden Verbesserungen wurden am Metal-Framework in tvOS 10 vorgenommen:
- 3D-Apps und -Spiele können jetzt Tessellation verwenden, um komplexe Szenen und Geometrie über die GPU effizient zu rendern.
- Verwenden Sie die Funktionsspezialisierung, um eine hochoptimierte Sammlung von Material- und Lichtkombinationsfunktionen für eine Szene zu erstellen.
- Bieten Sie eine präzise Steuerung der Ressourcenzuordnung, um die Leistung von metallbasierten Apps mithilfe von Ressourcen heaps und Speicherlosen Renderzielen zu optimieren.
Weitere Informationen finden Sie im Apple Metal Programming Guide.
Verbesserungen von Metal Performance Shadern
Die folgenden Verbesserungen wurden am Metal Performance Shaders-Framework in tvOS 10 vorgenommen:
- Viele neue Kernel wurden dem Metal Performance Shaders-Framework hinzugefügt, damit die App die Vorteile von hochoptimierten, datenparalen Berechnungen wie Farbraumkonvertierungen und neuralen Netzwerkvorgängen nutzen kann.
ModelIO-Verbesserungen
Die folgenden Verbesserungen wurden am ModelIO-Framework in tvOS 10 vorgenommen:
- Das USD-Dateiformat wird jetzt unterstützt.
- Verwenden Sie die neue
MDLMaterialPropertyGraph
Klasse, um Laufzeitänderungen an Modellen auf einfache Weise zu unterstützen. - Die Unterstützung für signiertes Distanzfeld wurde der MDLVoxelArray-Klasse hinzugefügt.
- Verwenden Sie die neue
MDLLightProbeIrradianceDataSource
Klasse, um die Platzierung von Lichtsonden zu unterstützen.
SceneKit-Verbesserungen
Die folgenden Verbesserungen wurden am SceneKit-Framework in tvOS 10 vorgenommen:
- SceneKit enthält jetzt ein neues physically Based Rendering (PBR)-System für realistischere Ergebnisse mit einfacherer Objekterstellung.
- Verwenden Sie das neue SCNLightingModelPhysicallyBased-Schattierungsmodell, um eine breite Palette realistischer Schattierungseffekte zu produktieren, wobei nur drei grundlegende Eigenschaften (
Diffuse
Metalness
undRoughness
) erforderlich sind. - Da PBR-Schattierung am besten mit umgebungsbasierter Beleuchtung funktioniert, verwenden Sie die
LightingEnvironment
Eigenschaft, um bildbasierte Beleuchtung zuzuweisen, um ganze Szene zu bräunen. - Verwenden Sie die
IESProfileURL
Eigenschaft, um reale Leuchten zu importieren, die Die Beleuchtungsbasis auf realen Werten wie Intensität (in Lumen) und Farbtemperatur (in Grad Kelvin) definieren. - Die SCN Kamera-Klasse kann mithilfe von HDR-Features und -Effekten einen größeren Realismus bieten. Verwenden Sie adaptive Belichtung zum Erstellen von automatischen Effekten oder verwenden Sie Vignetting, Farbfränder und Farbnoten, um dem Spiel filmatische Effekte hinzuzufügen.
- Sowohl PBR- als auch HDR-Kamerafeatures bieten bessere Ergebnisse als herkömmliche Renderingtechniken und daher führt SceneKit jetzt alle Farbberechnungen in einem linearen Farbraum aus (unter Verwendung der P3-Farbskala auf Breitfarbgeräteanzeigen).
- SceneKit stimmt jetzt mit allen Farben überein, indem die Farbprofilinformationen gelesen werden.
- SceneKit interpretiert Farbkomponentenwerte in einem linearen RGB-Farbraum für alle Shadertypen.
- Da SceneKit Farbprofilinformationen in Texturbildern liest und anpasst, verwenden Sie Objektkataloge für alle Bilder, um sicherzustellen, dass diese Informationen bereitgestellt werden.
- Sowohl das rendern des linearen Farbraums als auch das Breitfarbenrendering können deaktiviert werden, indem die
SCNDisableLinearSpaceRendering
Und-TastenSCNDisableWideGamut
in der AppInfo.plist
angegeben werden. - Erstellen Sie beliebige Polygon-Primaten (entweder aus Dateien geladen oder programmgesteuert generiert), um Geometrie mit der neuen SCNGeometryPrimitiveTypePolygon-Klasse anzugeben.
SpriteKit-Verbesserungen
Die folgenden Verbesserungen wurden am SpriteKit-Framework in tvOS 10 vorgenommen:
- Tilemaps unterstützen jetzt quadratische, sechseckige und isometrische Kachelformen für 2D-, 2.5D- und Side-Scrolling-Spiele mit den
SKTileMapMode
,SKTileGroup
undSKTileGroupRule
SKTileSet
Klassen. - Verwenden Sie die neue
SKWarpGeometry
Klasse, um das Rendern von SKSpriteNode oder SKEffectNode zu strecken oder zu verfälschen. Die neue SKAction-Klasse kann verwendet werden, um Übergänge zwischen Verzerrungseffekten zu animieren. - Benutzerdefinierte Shader können Attribute (
SKAttribute
) bereitstellen, die separat von jedem Knoten konfiguriert werden können, der den Shader verwendet, indem ein Attributwert (SKAttributeValue
) angegeben wird. - Die SKView-Klasse bietet mehrere neue Methoden, um präzise Kontrolle darüber zu geben, wann und wie eine Szene gerendert wird.
UIKit-Verbesserungen
Die folgenden Verbesserungen wurden am UIKit-Framework in tvOS 10 vorgenommen:
- Die Fokus-API wurde erweitert, um den Fokus von Nicht-Ansichtselementen zusätzlich zu
UIViews
unterstützen. Elemente, die den Fokus unterstützen, müssen dieIUIFocusItem
Schnittstelle implementieren. - Die neue
UIGraphicsRender
Klasse stellt eine objektorientierte Methode zum Erstellen von Bitmaps oder PDFs aus UIKit-Rendering oder Core Graphics bereit und ersetzt die veralteteUIGraphicsBeginImageContext
Methode. - Die
UIUserInterfaceStyle
Klasse wurde hinzugefügt, um zu bestimmen, welches Benutzeroberflächendesign (dunkel oder hell) derzeit aktiv ist. - Neue vollständig interaktive, objektbasierte, unterbrechungsfähige Animationsunterstützung wurde hinzugefügt und kann mit Gesten verknüpft werden. Pleas see Apple's UIViewAnimating Protocol Reference, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference and UISpringTimingParameter Class Reference for more information.
- Die neue
UIPreviewInteraction
App ermöglichtUIPreviewInteractionDelegate
es der App, eine benutzerdefinierte Benutzeroberfläche für Vorschau- und Popvorgänge bereitzustellen. - Mit der neuen
UIAccessibilityCustomRotor
Klasse kann die App benutzerdefinierte, kontextspezifische Funktionen für Hilfstechnologien wie Voice Over bereitstellen. - Verwenden Sie die
UIAccessibilityIsAssistiveTouchRunning
Symbole,UIAccessibilityAssistiveTouchStatusDidChangeNotification
um zu bestimmen, ob AssistiveTouch aktiviert ist. - Verwenden Sie die
UIAccessibilityHearingDevicePairedEar
Symbole,UIAccessibilityHearingDevicePairedEarDidChangeNotification
um den Status aller gekoppelten MFi-Hörgeräte zu erhalten. - Die neue UIPasteboard-API bietet neue Optionen (z. B. Lebensdauerbeschränkungen) und deklariert automatisch kompatible Inhaltstypen für allgemeine Klassentypen.
- Zur Unterstützung des dynamischen Typs in Beschriftungen verwenden Textfelder und Textfelder die neue
PreferredFontForTextStyle
Methode derUIFont
Klasse. - Um zu entscheiden, ob ein Element die Schriftart aktualisieren soll, wenn sich die Geräte
UIContentSizeCategory
ändern, verwenden Sie dieAdjustsFontForContentSizeCategory
Eigenschaft desUIContentSizeCategoryAdjusting
Delegaten. - Die App kann nun die Darstellung des Badges für Registerkartenleistenelemente wie Text und Hintergrundfarbe steuern.
- Das Aktualisierungssteuerelement wird jetzt in allen Bildlauf- und Bildlaufansichtsunterklassen unterstützt (z
UICollectionView
. B. ). - Die
OpenURL
Methode derUIApplication
Klasse wird asynchron aufgerufen, unterstützt jetzt einen Abschlusshandler, der aufgerufen wird, nachdem das Öffnen abgeschlossen wurde. - Initiieren Sie die CloudKit-Freigabe, und ändern Sie die zugehörigen Eigenschaften mithilfe der neuen
UICloudSharingController
UndUICloudSharingControllerDelegate
Klassen. - Nutzen Sie voreingestellte Zellen, um das Bildlauferlebnis
UICollectionViews
mit dem neuenUICollectionViewDataSourcePrefetching
Delegat zu verbessern.