Apple

La version bêta 6 6 du développeur iOS 13 d'Apple est disponible pour iPhone avec le nouveau contrôle du mode sombre, des aperçus de liens cachés et plus encore «iOS et iPhone :: Gadget Hacks

Par Maximus , le 8 août 2019 - 26 minutes de lecture

Bien que les arrière-plans de dossiers de l'écran d'accueil soient déjà translucides, l'opacité est réduite de manière à ce que davantage de couleurs transparaissent, ce qui les rend plus transparentes. Considérant que les icônes de réception de la barre d'état mentionnées ci-dessus étaient apparemment une erreur lorsqu'elles ont augmenté de taille auparavant, ces arrière-plans de dossiers peuvent également être une erreur. Nous verrons quand la bêta 7 sortira.

Notes de publication pour iOS et iPadOS 13 Developer Beta 6:

Vue d'ensemble

Le SDK iOS & iPadOS 13 prend en charge le développement d'applications pour les appareils iPhone, iPad et iPod touch fonctionnant sous iOS et iPadOS 13. Le SDK est fourni avec Xcode 11 beta disponible à partir du téléchargement de logiciels bêta. Pour plus d'informations sur les exigences de compatibilité pour Xcode 11, consultez les Notes de publication de Xcode 11 Beta 5.

Les développeurs utilisant iOS 13 beta 6 doivent également mettre à jour vers Xcode 11 beta 5.

Attention

Si votre montre fonctionne sous watchOS 6 bêta, vous devez la mettre à jour avec watchOS 6 bêta 2 ou une version ultérieure avant de passer à iOS 13 bêta 6, sinon votre montre ne pourra plus se connecter à votre téléphone. (52854192)

Général – Problèmes connus

  • Les instantanés des applications utilisant Metal peuvent avoir une apparence inattendue dans le commutateur d'applications. (53121694)

Général – Problèmes résolus

  • Les liens détectés automatiquement, tels que les numéros de vol, s’ouvrent lorsque vous les appuyez. (53416463)

Général – Déprécations

  • La clé UIApplicationExitsOnSuspend n'est plus prise en charge dans iOS & iPadOS 13. Mettez à jour vos applications pour gérer le multitâche moderne. (43958234)

Audio – Nouvelles fonctionnalités

  • Le mode de traitement vocal peut maintenant être activé sur AVAudioEngine. (50906329)
  • Les nouveaux types AVAudioNode peuvent être utilisés pour envelopper un bloc défini par l'utilisateur pour l'envoi ou la réception de données en temps réel.
  • Une nouvelle méthode est disponible pour une application basée sur AVAudioEngine afin de récupérer une liste de tous les nœuds attachés à une instance AVAudioEngine.
  • Un nouveau mode de rendu dans AVAudioEnvironmentNode sélectionne automatiquement le meilleur algorithme de rendu audio spatial en fonction du périphérique de sortie.
  • Une nouvelle propriété AVAudioSession permet aux sons et aux haptiques du système de jouer pendant que la session utilise activement une entrée audio.
  • Une nouvelle énumération, AVAudioSession.PromptStyle, indique aux applications quel style d'invite vocale elles doivent lire en fonction des autres activités audio du système.
  • AVAudioSession.RouteSharingPolicy permet désormais aux applications de spécifier des stratégies de partage d'itinéraire afin que leurs itinéraires audio et vidéo se rendent au même emplacement qu'AirPlay.
  • Audio Unit Extensions prend désormais en charge les préréglages utilisateur disponibles dans toutes les applications hôtes.

Audio – Déprécations

  • Le framework OpenAL est obsolète et reste présent à des fins de compatibilité. Transition vers AVAudioEngine pour une fonctionnalité audio spatiale.
  • AUGraph est déconseillé en faveur de AVAudioEngine.
  • Le son inter-app est obsolète. Utilisez Audio Units pour que cette fonctionnalité aille de l'avant.
  • Les unités audio basées sur des composants carbone sont obsolètes et la prise en charge sera supprimée dans une version ultérieure.
  • Les plug-ins de matériel audio Legacy Core Audio HAL ne sont plus pris en charge. Utilisez des plug-ins de serveur audio pour faire avancer les pilotes audio.

Partage audio – Nouvelles fonctionnalités

  • Le partage audio est compatible avec les AirPod (1ère génération ou ultérieurs) et PowerBeats Pro. iPhone 8 ou version ultérieure, iPad Pro 12,9 pouces (2e génération ou ultérieure), iPad Pro 11 pouces, iPad Pro 10,5 pouces, iPad (5ème génération ou ultérieure), iPad Air (3ème génération), iPad mini (5ème génération) , ou iPod touch (7ème génération ou ultérieure) requis. (51331268)

AVFoundation – Nouvelles fonctionnalités

  • AVFoundation prend désormais en charge le codage vidéo avec des canaux alpha à l'aide de HEVC. Les vidéos encodées de cette manière sont largement prises en charge dans les API AVFoundation et par Safari dans les pages Web. Les détails techniques du format se trouvent dans la spécification du profil d'interopérabilité. (8045917)

Core Haptics – Problèmes connus

  • Par défaut, les haptiques sont désactivés au début de l’enregistrement au microphone. Vous pouvez remplacer cela en définissant la propriété AVAudioSession allowHapticsAndSystemSoundsDuringRecording sur true avant d'activer sa session audio. (25811898)
  • Les événements tels que audioContinuous, hapticContinuous et audioCustom ne peuvent pas être repris pendant l'événement; aucune sortie ne se produit pour cet événement, uniquement pour les événements suivants. Ceci s’applique à la lecture à un décalage horaire spécifique, à la recherche et à la reprise. (29274583)
  • Les instances CHHapticDynamicParameter avec des heures relatives non nulles envoyées dans le cadre d'un sendParameters (_: atTime 🙂 appellent un CHHapticAdvancedPatternPlayer avec le paramètre atTime défini sur 0.0 et ne sont pas appliquées correctement au début de CHHapticPatternPlayer, au lieu du temps relatif non nul attendu. Cela ne se produit pas sur un CHHapticPatternPlayer. (46316890)
  • Les vibrations générées via AudioServicesPlaySystemSound (_ 🙂 et les schémas de vibration générés via l'interface utilisateur Tap-to-Vibate créée par l'utilisateur sont atténués par rapport aux versions précédentes d'iOS. (47448156)
  • Les courbes de paramètre ne sont pas prises en charge avec un CHHapticAdvancedPatternPlayer, mais uniquement avec un CHHapticPatternPlayer. Aucune erreur n'est générée lorsqu'un CHHapticPattern contenant une courbe de paramètre est passé à un CHHapticAdvancedPatternPlayer. (47891515)
  • Une brève distorsion audio se produit lors du démarrage d'une application de la catégorie Lecture telle que la musique en arrière-plan. Par exemple, une brève distorsion se produit si vous démarrez l'application à partir de Control Center alors que la lecture audio de Core Haptics à l'aide d'une session audio playAndRecord est déjà en cours. (48121467)
  • Après toute décompression sur des échantillons à virgule flottante non compressés, la limite totale de toutes les ressources audioCustom par processus est de huit mégaoctets. (48659023)
  • Plusieurs courbes de paramètre se chevauchant pour le même CHHapticDynamicParameter.ID peuvent provoquer des artefacts de lecture. (50026384)
  • La durée maximale d'un événement haptique en haptique continu est de 30 secondes. Les événements dépassant cette limite peuvent être construits et acceptés par CHHapticPatternPlayer, mais la lecture haptique disparaîtra au bout de 30 secondes. (51322525)

Core Image – Nouvelles fonctionnalités

  • Les initialiseurs init (imageURL: options 🙂 et init (imageData: options 🙂 ne prennent plus en charge les versions RAW 5 et antérieures. La version 6 et les versions ultérieures restent prises en charge. (50911303)
  • Ajout de nouvelles API pour instancier et modifier les filtres intégrés de Core Image.
  • Le filtre CICoreMLModel est amélioré pour prendre en charge les modèles avec une entrée ou une sortie de type MLFeatureType.multiArray.
  • Les instances Metal CIKernel prennent en charge les arguments avec des données structurées de manière arbitraire.
  • Les instances Metal CIKernel prennent en charge le retour d'un groupe de 2 × 2 pixels.
  • Les valeurs entières des symboles CIFormat, telles que ARGB8, ont été remplacées par un nouvel ensemble de valeurs cohérentes sur toutes les plateformes. Les anciennes valeurs restent prises en charge pour la compatibilité ascendante; Cependant, vous devez éviter les dépendances sur des valeurs numériques spécifiques.

Trouver mon – Problèmes connus

  • Lorsque vous effectuez une action dans Find My qui génère un courrier électronique, vous pouvez voir des références aux applications Find My Friends et Find My iPhone. (51123613)
  • La fonctionnalité "Notifier si trouvé" est actuellement indisponible.
  • Les cartes Apple Pay peuvent rester suspendues après la sortie d'un appareil du mode Perdu.
  • Bien que iOS et iPadOS 13 restent en version bêta, les possibilités de recherche hors connexion sont limitées.

HomeKit – Problèmes résolus

  • Après avoir visualisé les flux de caméras IP dans l'application Home, votre appareil dormira sans quitter l'application. (52981554)

iCloud – Problèmes connus

  • Après la mise à jour vers iOS 13 beta 6, iCloud Drive peut se synchroniser pendant une période prolongée. Si vous remarquez des fichiers manquants, vous les trouverez dans un dossier Fichiers récupérés sous Sur mon iPhone / iPad dans l'application Fichiers. (53772753)
  • La section iCloud Drive dans Paramètres> Général> Stockage iPhone peut ne pas représenter correctement l'état actuel des fichiers sur votre appareil. (50362095)
  • Lors de la création d'un nouveau document Pages, Numéros ou Keynote dans un dossier partagé, le message suivant peut s'afficher: "Impossible de se connecter à iCloud". (50827963) Solution de contournement: Fermez et rouvrez le document.

Localisation – Problèmes connus

  • Les appareils configurés pour utiliser certaines langues peuvent présenter une disposition tronquée ou mal alignée. (51068688)
  • Les appareils configurés pour utiliser certaines langues peuvent afficher du texte non localisé. (47765173, 51197936, 51270878)

Mail – Nouvelles fonctionnalités

  • Les boutons situés sous le champ de recherche utilisé pour affiner vos résultats de recherche peuvent ne pas fonctionner comme prévu. (53808836)
  • Ignorer les expéditeurs bloqués peut maintenant être activé dans Paramètres> Courrier. La liste de contacts bloqués est partagée avec Messages, FaceTime et Téléphone. (50775961)

Messages – Problèmes résolus

  • Lorsque vous utilisez Messages dans iCloud, vous ne voyez plus d'invites vous demandant de réparer votre compte et vos messages ne sont synchronisés avec d'autres appareils. (53406906)

Mise en réseau – Nouvelles fonctionnalités

  • L'API CNCopyCurrentNetworkInfo a été modifiée pour tenir compte de la confidentialité. Veuillez vous reporter à la documentation mise à jour de l'API et aux en-têtes pour plus de détails. (52707167)
  • Toutes les instances URLSessionTask avec une méthode HTTP GET qui contiennent un corps produisent maintenant l'erreur NSURLErrorDataLengthExceedsMaximum. (46025234)

Mise en réseau – Problèmes connus

  • À partir de iOS 13 beta 4, l'attribut de copie de la propriété httpBody de NSMutableURLRequest est appliqué. Si les données du corps sont mutées après l'appel du configurateur de propriété, les données envoyées dans la requête HTTP n'incluent pas cette mutation. L'appel de la propriété getter ne renvoie plus une référence NSMutableData, même lorsque le programme de configuration a été appelé avec des données de ce type. Depuis iOS 13 beta 5, les applications créées à l'aide du SDK iOS 12 ou des SDK précédents utilisent le comportement hérité. (53427882)

Mise en réseau – Obsolètes

  • Suppression de la prise en charge des modèles FTP et URL de fichier pour la configuration automatique du proxy (PAC). HTTP et HTTPS sont les seuls modèles d'URL pris en charge pour PAC. Cela concerne toutes les configurations de PAC, y compris, mais sans s'y limiter, les configurations définies à l'aide des API Paramètres, Préférences système, Profils et URLSession, telles que connectionProxyDictionary et CFNetworkExecuteProxyAutoConfigurationURL (_: _: _: _ :). (28578280)
  • Les API URLSession et NSURLConnection ne prennent plus en charge SPDY. Les serveurs doivent utiliser HTTP 2 ou HTTP 1.1. (43391641)

Notes – Problèmes connus

  • L'utilisation de la recherche dans Notes peut produire des résultats inattendus. (48238242)

Temps d'écran – Problèmes connus

  • Si vous activez le partage sur plusieurs appareils, les paramètres de Screen Time ne sont pas synchronisés avec iCloud tant que votre appareil iOS n'est pas redémarré. Toutes les modifications que vous apportez aux paramètres de Screen Time sur ce périphérique avant de redémarrer sont perdues. (50194586)

Paramètres – Problèmes connus

  • Les paramètres Ne pas déranger peuvent ne pas être synchronisés entre votre téléphone et regarder jusqu'à ce que les deux soient mis à jour pour iOS 13 beta 4 et watchOS 6 beta 4. (52830669)
  • Vous pourriez ne pas être en mesure d'acheter des forfaits de données cellulaires sur iPad. (51735832, 51737229)

Connexion avec Apple – Problèmes connus

  • Le statut d'utilisateur réel est actuellement indisponible. La connexion avec Apple fournit un statut pour les nouveaux comptes mais ce statut peut renvoyer des résultats inattendus. (51765525)

Siri – Problèmes connus

  • Les automatisations de raccourcis sont temporairement indisponibles. (53182885)
  • Les AirPod peuvent se déconnecter de manière inattendue lorsque l’option Annoncer les messages avec Siri est activée, à moins que la musique ne soit lue pendant la réception d’un nouveau message. (50322025)
  • Lorsque vous modifiez le fichier de définition de l'intention d'une application et que vous l'installez, les modifications ne sont pas immédiatement reflétées dans les raccourcis. (46645833) Solution de contournement: Quittez et relancez les raccourcis après avoir installé une nouvelle version de l'application, ou créez et exécutez l'extension d'intentions dans Xcode, en ciblant l'application Raccourcis.
  • La propriété supportsOnDeviceRecognition renvoie toujours la valeur false lors du premier accès. Après quelques secondes, y accéder à nouveau renvoie la valeur correcte. (47822242)
  • Les raccourcis ouverts sur iOS et iPadOS 13 beta sont automatiquement mis à niveau et ne peuvent plus être ouverts sous iOS 12. Si un appareil avec iOS 12 et un appareil avec iOS 13 partagent un compte iCloud, ils risquent de devenir inutilisables sur l'appareil exécutant iOS 12. ( 50873839) Solution de contournement: Désactivez iCloud Sync entre les appareils exécutant iOS & iPadOS 13 beta et les appareils exécutant iOS 12.
  • Lorsque vous utilisez des langues autres que l'anglais, demander à Siri d'effectuer des opérations liées aux rappels ou aux messages peut entraîner la fermeture inattendue de l'application correspondante. (50952938)
  • Actuellement, la seule réponse prise en charge pour INSearchForMediaIntent est INSearchForMediaIntentResponseCode.continueInApp. (51010311)
  • Lorsque Annoncer les messages avec Siri est activé, la lecture de musique peut être interrompue lors de la lecture d'un message. (51243455)

SwiftUI – Nouvelles fonctionnalités

  • Vous pouvez maintenant créer une couleur à partir d'un UIColor ou d'un NSColor. (49833933)
  • NSManagedObject est maintenant conforme à ObservableObject. Le nouvel encapsuleur @FetchRequestproperty peut générer des vues à partir des résultats d'une demande d'extraction, et managedObjectContext est maintenant inclus dans l'environnement. (50280673)
  • Les modificateurs de geste sont renommés pour la cohérence. Par exemple, tapAction (count: _ 🙂 est renommé onTapGesture (count: perform 🙂 et longPressAction (minimumDuration: maximumDistance: _: appuyant 🙂 est renommé onLongPressGesture (minimumDuration: maximumDistance: appuyant sur: perform :). (50395282)
  • Le texte a maintenant une limite de ligne par défaut de nil pour qu'il soit renvoyé à la ligne par défaut. (51147116)
  • ContentSizeCategory et plusieurs autres énumérations sont maintenant CaseIterable. (51168712)
  • SegmentedControl est maintenant un style de Picker. (51769046)
  • BindableObject est remplacé par le protocole ObservableObject du framework Combine. (50800624)

Vous pouvez vous conformer manuellement à ObservableObject en définissant un objectWillChangepublisher à émettre avant que l'objet ne soit modifié. Cependant, par défaut, ObservableObject synthétise automatiquement objectWillChange et émet avant toute modification des propriétés @Published.

// RoomStore.swift
Fondation d'importation

classe RoomStore: ObservableObject {
@Published var rooms: Room =
}

struct Room: Identifiable {
var id: UUID
nom var: String
capacité var: Int
var hasVideo: Bool
}

// ContentView.swift
importer SwiftUI

struct ContentView: Voir {
@ObservedObject var store: RoomStore

var corps: une vue {
NavigationView {
Liste (store.rooms) {room in
RoomCell (chambre: chambre)
}
.navigationBarTitle ("Chambres")
}
}
}
@ObjectBinding est remplacé par @ObservedObject.

  • Le protocole identifiable fait maintenant partie de la bibliothèque standard Swift. Par conséquent, vos fichiers de modèle n'ont plus besoin d'importer la structure SwiftUI. (SE-0261)
  • La structure EnvironmentValues ​​a quatre nouvelles propriétés pour la lecture des valeurs d'accessibilité à partir de l'environnement: accessibilityDifferentiateWithout Color, accessibilityReduceTransparency, accessibilityReduceMotion et accessibilityInvertColors. (51712481)
  • La couleur (modificateur _ 🙂 pour Texte est renommée foregroundColor (_ 🙂 pour assurer la cohérence avec le modificateur plus général foregroundColor (_ :). (50391847)
  • Les exigences du protocole BindableObject sont désormais willChange au lieu de didChange et doivent maintenant être envoyées avant que l'objet ne soit modifié plutôt qu'après. Ce changement permet une meilleure fusion des notifications de changement. (51580731)
  • Le protocole RangeReplaceableCollection est étendu pour inclure une méthode remove (atOffsets 🙂 et le protocole MutableCollection est étendu pour inclure une méthode de déplacement (fromOffsets: toOffset :). Chaque nouvelle méthode utilise les instances IndexSet que vous utilisez avec les modificateurs onMove (perform 🙂 et onDelete (perform:) sur les vues ForEach. (51991601)
  • Ajout de modificateurs de présentation améliorés: sheet (isPresented: onDismiss: content :), actionSheet (isPresented: content 🙂 et alert (isPresented: content 🙂 – ainsi que isPresented dans l'environnement – remplacer la présentation existante (_ :), Sheet, Types modal et PresentationLink. (52075730)
  • Mise à jour des API pour la création d'animations. Les animations de base portent désormais le nom du type de courbe, tel que linéaire et easInOut. L'animation basée sur l'interpolation (masse: rigidité: amortissement: vitesse initiale 🙂 est maintenant interpolante Printemps (masse: rigidité: amortissement: vitesse initiale 🙂 et fluidSpring (rigidité: amortissementFraction: blendDurée: timestep: idleThreshold 🙂 est maintenant le printemps (réponse: dampingFraction: blendDuration 🙂 ou interactiveSpring (réponse: dampingFraction: blendDuration :), selon que l'animation est animée ou non de manière interactive. (50280375)
  • Ajout d'un initialiseur pour créer une police à partir d'un CTFont. (51849885)
  • Vous pouvez attribuer un style à une NavigationView à l'aide de deux nouvelles propriétés de style: StackNavigationViewStyle et DoubleColumnNavigationViewStyle. Par défaut, les vues de navigation sur iPhone et Apple TV reflètent visuellement une pile de navigation, tandis que sur iPad et Mac, une vue de navigation de style vue fractionnée s'affiche. (51636729)

Lorsque vous utilisez le style DoubleColumnNavigationViewStyle, vous pouvez fournir deux vues lors de la création d'une vue de navigation: la première est le maître et la seconde, les détails. Par exemple:

NavigationView {
MyMasterView ()
MyDetailView ()
}
.navigationViewStyle (DoubleColumnNavigationViewStyle ())

Swift – Problèmes connus

  • L'utilisation de la structure Path peut entraîner le blocage de votre application si vous utilisez les kits de développement inclus dans Xcode 11 beta 5. Par conséquent, vous ne pourrez peut-être pas suivre les étapes décrites dans le didacticiel Chemins et formes de dessin. (53523206)
  • L'utilisation d'une vue ForEach avec une expression complexe dans sa fermeture peut entraîner des erreurs de compilation. Solution de contournement: Extrayez ces expressions dans leurs propres types de vues. (53325810)
  • Les instances d'image n'utilisent pas les informations de redimensionnement configurées dans les catalogues d'actifs. Configurez la taille d'une image à l'aide du modificateur resizable (capInsets: resizingMode :). (49114577)

Swift – Problèmes résolus

  • Les menus contextuels ne s'affichent plus de manière incorrecte ni ne font planter votre application inopinément (53461370)

Swift – Déprécations

  • Les API SwiftUI, obsolètes dans les versions précédentes d'iOS 13 beta, ont été supprimées. (53310683)
  • NavigationDestinationLink et DynamicNavigationDestinationLink sont obsolètes; leur fonctionnalité est maintenant incluse dans NavigationLink. (50630794)
  • Le type Length est remplacé par CGFloat. (50654095)
  • TabbedView s'appelle maintenant TabView. (51012120)
  • HAlignment et VAlignment sont maintenant obsolètes. Utilisez plutôt les types HorizontalAlignment ou VerticalAlignment, plus souples, et utilisez TextAlignment pour le texte. (51190531)
  • Le protocole SelectionManager est supprimé. Utilisez les options Facultatif et Définir directement pour la sélection. (51557694)
  • La valeur de l'environnement isPresented est obsolète et remplacée par la valeur plus générale de presentationMode. (51641238)
  • Le protocole StaticMember est obsolète. Utilisez plutôt directement les types conformes au protocole. Par exemple, utilisez directement une instance de WheelPickerStyle plutôt que le membre statique de la roue. (52911961)
  • Les surcharges complexes pour les modificateurs d'arrière-plan (_: alignement 🙂 et bordure (_: width:) sont déconseillées. Utilisez des formes dans un arrière-plan (_: alignement 🙂 ou une superposition (_: alignement 🙂 pour les dessiner à la place. (53067530)
  • Les API SwiftUI obsolètes dans les versions précédentes sont maintenant supprimées. (52587863)
  • La méthode identifiée (par 🙂 sur le protocole Collection est déconseillée au profit des initialiseurs init (_: id: selection: rowContent 🙂 et init (_: id: content:) dédiés. (52976883, 52029393)

La conformité rétroactive de Int au protocole identifiable est supprimée. Modifiez tout code qui repose sur cette conformité pour passer .self au paramètre id de l’initialiseur approprié. Des plages constantes de Int continuent d'être acceptées:

Liste (0 .. <5) {
Texte ("Chambres")
}

Cependant, vous ne devez pas dépasser une plage qui change au moment de l'exécution. Si vous utilisez une variable qui change au moment de l'exécution pour définir la plage, la liste affiche les vues en fonction de la plage initiale et ignore les mises à jour ultérieures de la plage.

  • Plusieurs extensions de la structure de liaison sont supprimées. (51624798)

Si vous avez un code tel que celui-ci:
struct LandmarkList: Voir {
point de repère var: point de repère
@Binding var favorites: Définir

var corps: une vue {
Liste (points de repère) {point de repère dans
Basculer (landmark.name, isOn: self. $ Favoris.contains (landmarkID))
}
}
}

Définissez l'indice suivant sur la structure Ensemble:
Extension Set {
indice (membre: Element) -> Bool {
get {contient (membre)}
ensemble {
si newValue {
insérer (membre)
} autre {
supprimer (membre)
}
}
}
}
Ensuite, remplacez self. $ Favoris.contains (landmarkID) par self. $ FavourlandsmarkmarkID.

  • La conformité conditionnelle de la structure de liaison au protocole de collecte est supprimée. (51624798)

Si vous avez un code tel que celui-ci:
struct LandmarkList: Voir {
@Binding var landmark: Point de repère

var corps: une vue {
Liste (points de repère) {point de repère dans
Basculer (landmark.value.name, isOn: landmark .isFavorite)
}
}
}
Définissez le type de collection suivant:
struct IndexedCollection: RandomAccessCollection {
typealias Index = Base.Index
typealias Element = (index: Index, élément: Base.Element)

laisser base: Base

var startIndex: Index {base.startIndex}

var endIndex: Index {base.startIndex}

func index (après i: Index) -> Index {
base.index (après: i)
}

func index (avant i: Index) -> Index {
base.index (avant: i)
}

func index (_ i: Index, offsetPar distance: Int) -> Index {
base.index (i, offsetBy: distance)
}

indice (position: Index) -> Element {
(index: position, élément: baseposition)
}
}

extension RandomAccessCollection {
func indexed () -> IndexedCollection {
IndexedCollection (base: self)
}
} Ensuite, mettez à jour votre code pour:
struct LandmarkList: Voir {
@Binding var points de repère: Landmark

var corps: une vue {
Liste (landmarks.indexed (), id: .1.id) {(index, repère) dans
Basculer (landmark.name, isOn: self. $ Landmarksindex.isFavorite)
}
}
}

  • Les modificateurs relativeWidth (_ :), relativeHeight (_ 🙂 et relativeSize (width: height 🙂 sont obsolètes. Utilisez d'autres modificateurs tels que frame (minWidth: idealWidth: maxWidth: minHeight: idealHeight: maxHeight: alignement 🙂 à la place. (51494692)

Applications tierces – problèmes connus

  • Il est possible que vous ne puissiez pas diffuser sur un appareil Chromecast. (51334673)

UIKit – Nouvelles fonctionnalités

  • La classe UITableViewCell ne modifie plus les propriétés backgroundColor ou isOpaque du contentView ni aucune de ses sous-vues lorsque les cellules sont mises en surbrillance ou sélectionnées. Si vous définissez une couleur d'arrière-plan opaque sur une sous-vue de la cellule à l'intérieur (et y compris) de contentView, l'apparence à laquelle la cellule est mise en surbrillance ou sélectionnée peut être affectée. Le moyen le plus simple de résoudre les problèmes liés à vos sous-vues est de s'assurer que leur propriété backgroundColor est définie sur nil ou sur clear et que leur propriété opaque est false. Toutefois, si nécessaire, vous pouvez remplacer les méthodes setHighlighted (_: animated 🙂 et setSelected (_: animated 🙂 pour modifier manuellement ces propriétés dans vos sous-vues lors du passage aux états mis en surbrillance et sélectionnés. (13955336)
  • Depuis iOS 8, l'utilisation de UISearchController avec UINavigationController a nécessité la définition de la propriété definePresentationContext du contrôleur de la vue de dessus. Ne pas le faire conduit à des bugs subtils qui peuvent être difficiles à détecter et à déboguer. À partir de iOS et iPadOS 13 beta, si navigationItem d'un contrôleur de vue a un non-nilsearchController, lorsque le contrôleur de vue est affiché dans un contrôleur de navigation, UINavigationController définit automatiquement la propriété true de ce contrôleur de vue. Si vous ciblez des versions antérieures d'iOS, définissez cette propriété avant que votre contrôleur de recherche ne devienne actif. (31338934)
  • La classe UIRefreshControl ne modifie plus directement le contentInset de sa vue de défilement. Au lieu de cela, ses ajustements à l’encart de contenu seront incorporés à la page suivante suivante: adjustContentInset de la vue de défilement. La seule exception est lorsque contentInsetAdjustmentBehavior de la vue de défilement est défini sur UIScrollView.ContentInsetAdjustmentBehavior.never, auquel cas l'instance UIRefreshControl modifiera le contentInset directement comme dans les versions précédentes. (35866834)
  • Si vous implémentez des cellules à taille automatique dans une UITableView en surchargeant sizeThatFits (_ 🙂 sans utiliser la mise en page automatique, la hauteur que vous renvoyez est interprétée comme la hauteur souhaitée pour le contenu de la cellule, et UITableViewCell ajoute automatiquement toute hauteur supplémentaire nécessaire à l'espace. pour le séparateur de cellules. Si vous implémentez l'auto-dimensionnement manuel de cette manière, la largeur de la propriété contentView de la cellule sera précise et utilisable dans les calculs de mise en page manuels lorsque sizeThatFits (_ 🙂 sera appelé sur UITableViewCell. (39742612)
  • Les environnements de trait, tels que les vues et les contrôleurs de vue, ont maintenant leur propriété traitCollection remplie de traits lors de l'initialisation. Ces traits initiaux représentent une prédiction des traits ultimes que l'environnement des traits recevra lorsqu'il sera ajouté à la hiérarchie. Étant donné que les traits renseignés lors de l'initialisation ne sont que des prédictions, ils peuvent différer des traits reçus une fois dans la hiérarchie. Par conséquent, lorsque cela est possible, vous devez attendre si vous souhaitez effectuer un travail utilisant la propriété traitCollection jusqu'à ce que la vue, ou la vue du contrôleur, soit passée dans la hiérarchie – la fenêtre de référence renvoie une valeur non nulle – pour que vous n'ayez pas à jeter de travail. fait en utilisant les traits prédits si les traits réels sont différents. Le meilleur moment pour utiliser traitCollection est lors de la présentation, par exemple à l'intérieur de layoutSubviews (), viewWillLayoutSubviews () ou viewDidLayoutSubviews ().
  • La méthode traitCollectionDidChange (_ 🙂 n'est appelée que lorsque la valeur d'un trait change. Fait important, étant donné que la collection de traits est maintenant initialisée avec une prédiction des traits ultimes dans la hiérarchie de destination, lorsque les traits prédits initiaux correspondent aux traits ultimes de la hiérarchie, traitCollectionDidChange (_ 🙂 ne sera pas appelé lorsque l'environnement de trait est ajouté à la hiérarchie. TraitCollectionDidChange (_ 🙂 étant destiné à être un rappel d'invalidation pour vous avertir qu'un ou plusieurs traits ont été modifiés, auditez vos implémentations existantes de cette méthode, ainsi que la méthode UIContentContainer willTransition (à: avec :), pour les emplacements où vous pourriez se sont appuyés dessus pour déclencher la configuration initiale. Le meilleur endroit pour effectuer paresseusement un travail qui utilise traitCollection est l'une des méthodes layoutSubviews décrites ci-dessus, mais souvenez-vous que ces méthodes sont appelées à tout moment. (46818941)
  • Vous pouvez maintenant activer la journalisation de débogage pour voir facilement quand traitCollectionDidChange (_ 🙂 ou willTransition (to: with 🙂 est appelé sur vos propres classes. Activez la journalisation en utilisant l'argument de lancement suivant: -UITraitCollectionChangeLoggingEnabled YES. Vous voudrez peut-être désactiver temporairement le Vérificateur de thread principal en utilisant cet argument de lancement et en exécutant votre application à partir de Xcode pour éviter des messages de journal supplémentaires pour des classes non liées. (47858564)
  • La propriété contentView de la classe UITableViewCell est toujours disposée côte à côte avec les accessoires adjacents, à la fois du côté avant et du côté arrière. Cela simplifie le code de présentation afin que les développeurs qui souhaitent le décalage par défaut correct ne soient plus obligés d'aligner leur contenu sur la bordure de la vue de contenu ou sur la marge de présentation selon qu'il existe ou non un accessoire sur le dernier côté. Vous devez maintenant toujours disposer leur code sur les marges de présentation de la vue du contenu de la cellule pour obtenir les incrustations système par défaut. Ces incrustations seront ajustées automatiquement en fonction des accessoires visibles dans la cellule pour correspondre à l'espacement par défaut du système. (48214114)
  • Vous pouvez maintenant appeler un initialiseur personnalisé à partir d'un bloc de création transmis via instantiateInitialViewController (creator 🙂 ou instantiateViewController (identifiant: creator :). Cela vous permet d'initialiser les contrôleurs de vue avec un contexte et des arguments supplémentaires, tout en tirant parti de leur définition dans un storyboard via Interface Builder. Un initialiseur de contrôleur personnalisé doit appeler sa méthode super.init (coder 🙂 et transmettre l’argument du codeur qu’il reçoit via le bloc de création. (48313869)

UIKit – Problèmes connus

  • La spécification de UIWindowScene.DestructionRequestOptions dans Swift est actuellement indisponible. (51036709)

Regarder – Problèmes connus

  • Si Apple Watch n’exécute pas watchOS 6 beta, les complications peuvent disparaître d’Apple Watch après la mise à jour vers iOS 13 beta. (50507942)

Xcode – Nouvelles fonctionnalités

  • CAMetalLayer est maintenant disponible dans Simulator. (45101325)

Xcode – Problèmes connus

  • Les raccourcis donnés peuvent ne pas apparaître dans la recherche lorsque vous utilisez le simulateur. (50832782) Solution de contournement: Testez sur un appareil avec Paramètres> Développeur> Afficher les raccourcis récents activés.
  • La modification du niveau de volume dans Simulator pendant la lecture d’une vidéo dans Safari coupe le son. (51207286)

Pour mettre à jour votre iPhone vers iOS 13 dev beta 6, vous devez être un développeur inscrit. Vous pouvez utiliser l'image de restauration pour votre iPhone disponible sur le portail de développeur (installer avec iTunes ou Finder) ou installer le profil de configuration puis effectuer une mise à jour par liaison radio. Si le profil est déjà installé sur votre iPhone, allez dans Paramètres -> Général -> Mise à jour de logiciels pour commencer à installer la dernière version bêta. Vous pouvez également attendre son installation automatique si "Mises à jour automatiques" est activé.