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ćNSPersistentStoreCoordinator
się 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 lubFilterWithImageURL
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) 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.
- 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.
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 jakHKWorkoutActivityTypeFlexibility
HKWeatherConditionClear
iHKWorkoutActivityTypeWheelchairRunPace
). - Dodano nową
HKCDADocument
klasę do reprezentowania dokumentu sformatowanego w dokumencie klinicznym (CDA). - Użyj nowej klasy HKWorkoutConfiguration , aby określić
ActivityType
wartości iLocationType
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:
- Użyj klas RPScreenRecorder, RPBroadcastActivityViewController i RPBroadcastController, aby obsługiwać nadawanie zarejestrowanych multimediów za pośrednictwem witryn innych firm.
- Rozszerzenia interfejsu użytkownika emisji i przekazywania emisji są wymagane do obsługi usług emisji replayKit innych firm w aplikacji.
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 (
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 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 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 .
- 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
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. - 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ędnijIndexDisplayMode
właściwość , aby kontrolować sposób wyświetlania indeksu, gdy użytkownik przewija się w następujący sposóbUIScrollViewIndexDisplayMode
: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
UIPreviewInteraction
UIPreviewInteractionDelegate
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
metodyUIFont
klasy. - Aby zdecydować, czy element powinien zaktualizować czcionkę po zmianie urządzenia
UIContentSizeCategory
, użyjAdjustsFontForContentSizeCategory
właściwości delegataUIContentSizeCategoryAdjusting
. OpenURL
MetodaUIApplication
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 iUICloudSharingControllerDelegate
. - Skorzystaj z wstępnie pobranych komórek, aby poprawić środowisko przewijania
UICollectionViews
nowego delegataUICollectionViewDataSourcePrefetching
. - 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.