Zusätzliche iOS 10 Frameworks-Änderungen
In diesem Artikel werden zusätzliche, kleinere Änderungen oder Verbesserungen für vorhandene Frameworks für iOS 10 behandelt.
Ergänzungen des AV Foundation-Frameworks
Das AVFoundation-Framework enthält die folgenden Verbesserungen:
- In iOS 10 muss der Entwickler nicht mehr verschiedene AVPlayerItem-Verhaltensweisen basierend auf dem Inhaltstyp implementieren. 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 AVCapturePhotoOutput-Klasse ersetzt die veraltete
AVCaptureStillImageOutput
Klasse und bietet eine einheitliche Methode für die Behandlung aller Fotoworkflows, indem sie anspruchsvolle Kontrolle und Überwachung des Aufnahmeprozesses und Unterstützung für neue Features wie Live Fotos und das RAW-Aufnahmeformat bereitstellt. - Die neue
AVPlayerLooper
Klasse erleichtert die Schleife eines bestimmten Medienteils während der Wiedergabe. - Die
AVAssetDownloadURLSession
Klasse ermöglicht das Herunterladen und spätere Wiedergabe verschlüsselter HLS-Streams von FairPlay. - Standardmäßig unterstützt die AVCaptureSession-Klasse automatisch breitfarbige, breitformatige Aufnahme, wenn die Gerätehardware sie unterstützt. Weitere Informationen finden Sie in der iOS-Gerätekompatibilitätsreferenz von Apple.
AVKit-Ergänzungen
Das AVKit-Framework enthält jetzt die neue UpdatesNowPlayingInfoCenter
Eigenschaft, die angibt, wann das Now Playing Info Center aktualisiert werden soll.
Kerndatenverbesserungen
iOS 10 enthält die folgenden Verbesserungen am Core Data Framework:
- 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.
- Stammobjekte von NSManagedObjectContext unterstützen gleichzeitiges Fehlerhaftes und Abrufen ohne Serialisierung.
- Die NSPersistentStoreCoordinator-Klasse Standard enthält einen Pool von SQLite-Datenspeichern.
- Es wurden mehrere neue Komfortmethoden hinzugefügt, um
NSManagedObject
das Ausführen von Abrufen und Erstellen von Unterklassen zu vereinfachen. - Verwenden der allgemeinen Ebene
NSPersistenceContainer
, um auf dasNSPersistentStoreCoordinator
NSManagedObjectModel und andere Core Data-Konfigurationsressourcen zu verweisen.
Weitere Informationen finden Sie in der Core Data Framework-Referenz von Apple.
Kernbildverbesserungen
iOS 10 macht die folgenden Verbesserungen am Core Image Framework:
- Der Entwickler kann bilder jetzt in einem Farbraum außerhalb des Arbeitsfarbraums des Core Image-Kontexts verarbeiten, indem er den Farbraum vor und nach der Verarbeitung in und aus dem Farbraum konvertiert.
- Für iOS-Geräte, die die A8- oder A9-CPUs verwenden, wird das RAW-Bildformat jetzt unterstützt. Core Image bietet jetzt Unterstützung für die Decodierung von RAW-Bildern von der integrierten iSight-Kamera oder von einer Drittanbieterkamera. Verwenden Sie die
FilterWithImageData
METHODEN derFilterWithImageURL
CIFilter-Klasse , um RAW-Bilder zu verarbeiten. - 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.
- 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.
Darüber hinaus wurden die folgenden neuen Core Image-Filter hinzugefügt:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Core Motion Additions
Neu bei iOS 10 enthält das Core Motion-Framework Pedometerereignisse, mit denen eine App schnelle, Echtzeitbenachrichtigungen des Benutzers empfangen und die Nachverfolgung während der Ausführung fortsetzen kann. Verwenden Sie cmPedometer, um sich für Vordergrund- oder Hintergrund-Pedometerereignisse zu registrieren.
Foundation-Verbesserungen
Die folgenden Verbesserungen wurden am Foundation-Framework für iOS 10 vorgenommen:
Verwenden Sie die neue NSMeasurementFormatter-Klasse , um lokalisierte Maße für die Anzeige für den Endbenutzer zu formatieren.
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.
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 neuen NSUnit - und NSDimension-Klassen für die Darstellung bestimmter UOMs.
Der NSLocal-Klasse wurden mehrere neue Eigenschaften hinzugefügt, um lokale Informationen und die verfügbaren Anzeigeformate zu erhalten.
GameKit-Verbesserungen
Die folgenden Verbesserungen wurden am GameKit-Framework in iOS 10 vorgenommen:
- Die Game Center-App wurde veraltet und aus iOS entfernt. Wenn die App GameKit verwendet, muss sie eine eigene Schnittstelle zum Anzeigen von GameKit-Features wie Leaderboards usw. darstellen.
- 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, zu implementieren, 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 iOS 10 vorgenommen:
- Verwenden Sie die neue GKMeshGraph-Klasse , um leistungsstarke, natürliche Pfade bereitzustellen.
- 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.
- Die 3D-Unterstützung wurde vorhandenen Agent- und Pfadsucheverhalten mithilfe der neuen GKAgent3D - und GKGraphNode3D-Klassen hinzugefügt.
- Die neuen Klassen GKScene und GKSKNodeComponent machen die Kombination von GameplayKit und SpriteKit einfacher denn je.
- Es wurde eine neue Entscheidungsstruktur-API (GKDecisionTree und GKDecisionNode) hinzugefügt, um die KI-Entwicklung des Spiels zu verbessern.
HealthKit-Verbesserungen
Die folgenden Verbesserungen wurden am HealthKit-Framework in iOS 10 vorgenommen:
- Es wurden neue Metadatenschlüssel für Wettertypen (z
HKWeatherConditionClear
. B. undHKWeatherConditionCloudy
) hinzugefügt und Trainingstypen (zHKWorkoutActivityTypeFlexibility
. B. undHKWorkoutActivityTypeWheelchairRunPace
) hinzugefügt. - Die neue
HKCDADocument
Klasse wurde hinzugefügt, um ein cdA-formatiertes Dokument (Clinical Document Architecture) darzustellen. - Verwenden Sie die neue HKWorkoutConfiguration-Klasse , um das
ActivityType
UndLocationType
des Trainings anzugeben. - Das neue HKWheelchairUseObject und die
WheelchairUse
Methode der HKHealthStore-Klasse wurden für die Arbeit mit rollstuhlbezogenen Gesundheitsdaten hinzugefügt.
HomeKit-Verbesserungen
Die folgenden Verbesserungen wurden am HomeKit-Framework in iOS 10 vorgenommen:
- Neue Dienste und Merkmale wurden hinzugefügt.
- Ein iPad kann so konfiguriert werden, dass er als HomeKit Hub fungiert, um Remotezubehörzugriff bereitzustellen, Automatisierungstrigger auszuführen und freigegebene Benutzerberechtigungen zu aktivieren.
- Unterstützung für Kamera- und Türglockenzubehör wurde hinzugefügt.
- Für Zubehör wurden weitere Kontext- und Konfigurationen bereitgestellt.
Weitere Informationen finden Sie in unserer Einführung in die HomeKit-Dokumentation .
Metallverbesserungen
Die folgenden Verbesserungen wurden am Metal-Framework in iOS 10 vorgenommen:
- 3D-Apps und -Spiele können jetzt Tessellation verwenden, um komplexe Szenen und Geometrie über die GPU effizient zu rendern.
- Bieten Sie eine präzise Steuerung der Ressourcenzuordnung, um die Leistung von metallbasierten Apps mithilfe von Ressourcen heaps und Speicherlosen Renderzielen zu optimieren.
- Verwenden Sie die Funktionsspezialisierung, um eine hochoptimierte Sammlung von Material- und Lichtkombinationsfunktionen für eine Szene zu erstellen.
Weitere Informationen finden Sie im Apple Metal Programming Guide.
ModelIO-Verbesserungen
Die folgenden Verbesserungen wurden am ModelIO-Framework in iOS 10 vorgenommen:
- Das USD-Dateiformat wird jetzt unterstützt.
- 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. - Verwenden Sie die neue
MDLMaterialPropertyGraph
Klasse, um Laufzeitänderungen an Modellen auf einfache Weise zu unterstützen.
Fotos Verbesserungen
Die folgenden Verbesserungen wurden am Fotos Framework in iOS 10 vorgenommen:
- Verwenden Sie die KLASSEN CIImageProcessorInput und CIImageProcessorOutput , um das neue Core Image Processor Feature zum Ausführen von Bearbeitungen zu nutzen.
- Die Live-Fotobearbeitung ist jetzt für Apps verfügbar, die das Fotos Framework unterstützen, und für Fotobearbeitungserweiterungen (für die Verwendung innerhalb der Fotos- und Kamera-Apps).
- Verwenden Sie die neue PHLivePhotoEditingContext-Klasse, um Bearbeitungen sowohl auf das Video als auch auf den Inhalt von Live Fotos anzuwenden.
ReplayKit-Verbesserungen
Die folgenden Verbesserungen wurden am ReplayKit-Framework in iOS 10 vorgenommen:
- Verwenden Sie die Klassen RPScreenRecorder, RPBroadcastActivityViewController und RPBroadcastController, um die Übertragung aufgezeichneter Medien über Drittanbieterwebsites zu unterstützen.
- Die Broadcast UI- und Broadcast Upload-Erweiterungen sind erforderlich, um ReplayKit-Übertragungsdienste von Drittanbietern in der App zu unterstützen.
SceneKit-Verbesserungen
Die folgenden Verbesserungen wurden am SceneKit-Framework in iOS 10 vorgenommen:
- 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 fillmatische Effekte hinzuzufügen.
- 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 einer ganzen Szene zuzuweisen. - Verwenden Sie die
IESProfileURL
Eigenschaft, um reale Lichtinstallationen zu importieren, die Beleuchtung basierend auf realen Werten wie Intensität (in Lumen) und Farbtemperatur (in Grad Kelvin) definieren. - 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.
- 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.
- Da SceneKit Farbprofilinformationen in Texturbildern liest und anpasst, verwenden Sie Objektkataloge für alle Bilder, um sicherzustellen, dass diese Informationen bereitgestellt werden.
SpriteKit-Verbesserungen
Die folgenden Verbesserungen wurden am SpriteKit-Framework in iOS 10 vorgenommen:
- 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. - 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. - Die SKView-Klasse bietet mehrere neue Methoden, um präzise Kontrolle darüber zu geben, wann und wie eine Szene gerendert wird.
ScrollView-Verbesserungen
Die folgenden Verbesserungen wurden am ScrollView-Steuerelement in iOS 10.3 vorgenommen:
UIScrollView
Fügen Sie nun dieIndexDisplayMode
Eigenschaft hinzu, um zu steuern, wie der Index angezeigt wird, während der Benutzer einen Bildlauf durchführtUIScrollViewIndexDisplayMode
:Automatic
- Die Indexanzeige wird vom Betriebssystem gesteuert.AlwaysHidden
- Die Indexanzeige ist immer ausgeblendet.
UIKit-Verbesserungen
Die folgenden Verbesserungen wurden am UIKit-Framework in iOS 10 vorgenommen:
- Die neue UIPasteboard-API bietet neue Optionen (z. B. Lebensdauerbeschränkungen) und deklariert automatisch kompatible Inhaltstypen für allgemeine Klassentypen.
- Neue vollständig interaktive, objektbasierte, unterbrechungsfähige Animationsunterstützung wurde hinzugefügt und kann mit Gesten verknüpft werden. Weitere Informationen finden Sie in der UIViewAnimating-Protokollreferenz, UIViewPropertyAnimator-Klassenreferenz, UITimingCurveProvider-Protokollreferenz, UICubicTimingParameters-Klassenreferenz und UISpringTimingParameter-Klassenreferenz.
- Die neue
UIPreviewInteraction
undUIPreviewInteractionDelegate
ermöglichen es der Entwickler-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. - Zur Unterstützung des dynamischen Typs in Beschriftungen verwenden Textfelder und Textfelder die neue
PreferredFontForTextStyle
Methode derUIFont
Klasse. - Um zu entscheiden, ob ein Element seine Schriftart aktualisieren soll, wenn sich das Gerät
UIContentSizeCategory
ändert, verwenden Sie dieAdjustsFontForContentSizeCategory
Eigenschaft desUIContentSizeCategoryAdjusting
Delegaten. - Die
OpenURL
Methode derUIApplication
Klasse wird asynchron aufgerufen und unterstützt jetzt einen Abschlusshandler, der aufgerufen wird, nachdem die geöffnete Aktion 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. - Der Entwickler kann nun die Darstellung des Badges für Registerkartenleistenelemente (z. B. Text und Hintergrundfarbe) steuern.
- Das Aktualisierungssteuerelement wird jetzt in allen Bildlauf- und Bildlaufansichtsunterklassen unterstützt (z
UICollectionView
. B. ).
WebKit-Verbesserungen
Die folgenden Verbesserungen wurden am WebKit-Framework in iOS 10 vorgenommen:
- Vorschau- und Popunterstützung wurde der
WKWebView
Klasse hinzugefügt. Verwenden Sie dieShouldPreviewElement
Methode, um zu ermitteln, ob eine bestimmte Webansicht eine Vorschau anzeigen soll.