Sunteți pe pagina 1din 27

macOS Catalina 10.

15
Beta 5 Release Notes
macOS Catalina 10.15 Beta 5 release notes
downloaded by GeeksCorner and sponsored by
Creativley Social.

macOS 13 Beta 5 Release


Notes
Overview
The macOS 10.15 SDK provides support for developing apps
for Macs running macOS Catalina 10.15. The SDK comes
bundled with Xcode 11 beta available from Beta Software
Downloads. For information on the compatibility requirements
for Xcode 11, see Xcode 11 Beta 5 Release Notes.
General
New Features
• Installing third party kernel extensions now requires that
you restart your Mac before they’re permitted to load.
(50340461)

Known Issues
• If you use Quick Look to preview an HTML document, the
app you’re using might quit unexpectedly. (53330705)
• During installation of macOS 10.15 you might be prompted
to enter your administrator password multiple times to
allow installation to proceed. (51206649)
Resolved Issues
• Your Secure Token correctly remains when FileVault is
enabled on a non-APFS formatted volume while upgrading
to macOS Catalina 10.15. (51091312)

Deprecations
• macOS frameworks are now thinned for the x86-64
architecture. Apps that execute i386 code now fail with the
EBADARCH error code. The remaining stub frameworks
are nonfunctional and exist only for compatibility purposes.
(51236070)

AirDrop
Known Issues
• AirDrop doesn’t work when a VPN is connected with the
includeAllNetworks and excludeLocalNetworks options
enabled.

Workaround: Disconnect the VPN before using AirDrop.
(52618489)

App Store
Known Issues
• You might receive an error when downloading or updating
apps. (49755328)

Workaround: Sign out of your account using the Store
menu, then sign back in and retry your download.

Apple TV
Known Issues
• Support for signing in with an account from a different
country is currently unavailable. (51240948)
AppleEvents
New Features
• To enhance security, AppleEvents and AppleScripts that
target an app on a remote system must authenticate as the
same user on the remote system. An AppleEvent that
targets an app running as a different user receives a
procNotFound error.

To allow remote AppleEvents to target apps in any user
session, run the following command in Terminal on the
server:

defaults write /Library/Preferences/com.apple.AEServer
RestrictAccessToUserSession -bool false
• 




Then disable and reenable Remote Apple Events in
System Preferences > Sharing. (5353592)

Audio
New Features
• You can now enable voice processing mode on
AVAudioEngine. (50906329)
• You can use new AVAudioNode types to wrap a user-
defined block for sending or receiving data in real-time.
• A new method is available for an AVAudioEngine based
app to retrieve a list of all nodes attached to an
AVAudioEngine instance.
• A new rendering mode in AVAudioEnvironmentNode
selects the best spatial audio rendering algorithm
automatically based on the output device.
• A new AVAudioSession property allows system sounds and
haptics to play while the session is actively using audio
input.
• A new property, AVAudioSession.PromptStyle informs apps
which style of voice prompt they should play based on
other audio activity in the system.
• The AVAudioSession.RouteSharingPolicy enumeration is
extended to allow apps to specify route sharing policies so
their audio and video is routed to the same location as
AirPlay.
• Audio Unit Extensions now support user presets that are
available across all host apps.
Deprecations
• The OpenAL framework is deprecated and remains
present for compatibility purposes. Transition to
AVAudioEngine for spatial audio functionality.
• AUGraph is deprecated in favor of AVAudioEngine.
• Inter-App audio is deprecated. Use Audio Units for this
functionality.
• Carbon component-based Audio Units are deprecated and
support will be removed in a future release.
• Legacy Core Audio HAL audio hardware plug-ins are no
longer supported. Use Audio Server plug-ins for audio
drivers.

AVFoundation
New Features
• The AVPlayer class includes two new properties,
eligibleForHDRPlayback and
eligibleForHDRPlaybackDidChangeNotification, which you
can use to determine whether an HDR display is available
and can play on the current device. (35938145)
• AVFoundation now supports encoding video with alpha
channels using HEVC. Videos encoded in this manner are
broadly supported in AVFoundation APIs and by Safari
within web pages. Technical details of the format can be
found in the Interoperability Profile specification. (8045917)

Deprecations
• The previously deprecated 32-bit QuickTime framework is
no longer available in macOS 10.15.
• The symbols for QTKit, which relied on the QuickTime
framework, are still present but the classes are non-
functional.
Camera
Known Issues
• Apps using Picture Taker must specify the
NSCameraUsageDescription key to access the FaceTime
camera. (47916725)

Core Image
New Features
• The init(imageURL:options:) and init(imageData:options:)
initializers no longer support RAW decoder versions earlier
than 6. Version 6 and later remain supported. (50911303)
• Added new APIs for instantiating and modifying the built-in
Core Image filters.
• The CICoreMLModel filter is enhanced to support models
with an input or output of type MLFeatureType.multiArray.
• Metal CIKernel instances now support arguments with
arbitrarily structured data.
• Metal CIKernel instances now support returning a group of
two by two pixels.
• The integer values of CIFormat symbols, such as ARGB8,
have changed to a new set of values which are consistent
across platforms. The former values remain supported for
backward compatibility; however, you should avoid
dependancies on specific numerical values.

DriverKit
Resolved Issues
• DriverKit drivers build correctly. (52858797)
EndpointSecurity
Known Issues
• Using APIs related to muting by paths and path prefixes
might cause the kernel to panic. (53517643)

Workaround: Modify only muted paths and path prefixes
when the client isn’t subscribed to any events.
es_mute_path_prefix, es_mute_path_literal, and
es_unmute_all_paths are affected.
• Messages to clients might be truncated, which could cause
clients to quit unexpectedly. (53517680)
Resolved Issues
• High frequency AUTH events such as
ES_EVENT_TYPE_AUTH_READLINK triggered by logd
no longer cause the client to become unresponsive.
(52211117)
• The es_mute_process(_:_:) interface correctly mutes
processes. (53017708)
• es_copy_message(_:) functions correctly. (53013028)

Deprecations
• The kauth API will be removed in a future release.
(50419013)

iCloud
Known Issues

• The Cloud Files section in About This Mac > Storage >
Manage might inaccurately represent the current state of
files on your Mac. (50362095)
• Even when Optimize Storage is switched off, iCloud Drive
might fail to automatically download all files. (50667204)

Workaround: Download files individually.
• When creating a new Pages, Numbers, or Keynote
document in a shared folder, you might see the message
“Couldn’t connect to iCloud”. (50827963)

Workaround: Close and reopen the document.
Resolved Issues
• Documents saved to your Desktop appear correctly when
you’re using iCloud Desktop and Documents. (51569326,
52731989)

iWork
Known Issues
• Attempting to open iWork documents in Finder will
unexpectedly create a .cpgz file if the corresponding iWork
app isn’t installed. (40693892)

Workaround: Install the corresponding app from the App
Store before opening the document.

Launch Daemons and Agents


New Features
• Launch daemons and launch agents introduce new user
privacy protections. Specifying privacy-sensitive files and
folders in a launchd property list might not work as
expected and prevent the service from running. Having
Program or ProgramArguments pointing to an executable
in a privacy sensitive location is currently allowed, but may
be restricted in a future release. (49702405)

To comply with the new privacy protections, resources for a
launchd service must be stored in locations that aren’t
privacy sensitive. If necessary, the app can set up
resources during its execution rather than using launchd
property list keys, making it possible to grant the app
access using System Preferences > Security & Privacy >
Privacy. 

The following launchd property list keys are affected:
KeepAlive, PathState, QueueDirectories, Sockets,
SockPathName, StandardErrorPath, StandardInPath,
StandardOutPath, and WatchPaths.

Localization
Known Issues
• Certain languages might exhibit clipped or misaligned
layout. (51068688, 50983852)
• Certain languages might display unlocalized text.
(47765173, 51196633)
Mac Catalyst
Known Issues
• MPMediaPickerController might not display the contents of
your library. (51785735)
• AppKit and Mac Catalyst apps are currently view-only
clients of PencilKit. (51146823)
• In order to show a share sheet from a toolbar item using
the UIActivityViewController, create the NSToolbarItem
using the init(itemIdentifier:) initializer and pass it a
UIBarButtonItem configured as a
UIBarButtonItem.SystemItem.action. There is no need to
set the barButtonItem property. (47292316)
• The UIScreen class’s isCaptured API isn’t currently
supported. (48360589)
• The current property on UIDevice and the OS Product
Name is currently returned as iOS rather than macOS,
which can affect diagnostic logs generated by your system.
(49792004)
• Event handling in extension contexts may produce
unexpected results, including failure to deliver trackpad
pinch and zoom gestures. (50145462)
• When sending Mail attachments via MessageUI, each
attachment might appear as two icons when viewed by the
recipient. (50369995)
• Controls drawn with accent color incorrectly maintain their
active color when the window is inactive. There is no need
to work around this in your app. (50563638)
• The UIKit module currently doesn’t import the newly added
NSToolbar and NSTouchBar headers,
NSToolbar+UIKitAdditions.h and
NSTouchBar+UIKitAdditions.h. You can import these
headers directly in Objective-C, or you can create a
bridging header to import them for Swift. Be sure to import
Foundation before importing these headers. (50704322)
• When your Mac Catalyst app is launched directly into the
background, it experiences all the state transitions of a
regular app launch — such as
application(_:didFinishLaunchingWithOptions:) and
applicationDidBecomeActive(_:) — followed by state
transitions to return to background state from there —
applicationWillResignActive(_:) and
applicationDidEnterBackground(_:). This will soon be
updated to match iOS, where your app will receive only
applicationDidFinishLaunching(_:), and only if it wasn’t
already running. (50742219)
• For Mac Catalyst apps to save to Photos Library, explicitly
linking the Photos framework is required. (50781430)
• Opening a CloudKit share URL might not launch a Mac
Catalyst app that’s present on the system. Additionally, the
system might not take the user to the appropriate App
Store page to download an app which isn’t present on the
system. (50877241)
• Action and share extensions might exhibit visual
anomalies. (51005363)
• All assets at 3x scale factor are currently ignored when
compiling the asset catalog for Mac Catalyst apps.
Because the search begins with the universal asset, assets
for a specific memory or graphics class won’t be found. For
example, if you provide an image and only give a 6GB and
Metal 5v1 asset, it won’t be found at runtime. It’s
recommended that you provide all images as vectors to
allow generation of the correct scale factors, or at minimum
provide 2x versions of the assets. If you’re classifying
resources based on memory and graphics families then
you should provide "Any Memory" and "Any Graphics”.
(51033745)
• CallKit CXAction instances might return an error.
(51074735)
• When creating a Mac Catalyst app from your iPad app,
Xcode automatically generates a unique Mac bundle
identifier. If you have an existing Mac bundle identifier
you’d prefer to use, you can do so by using manual signing
in Xcode. (51076014)

Follow these steps to configure your project, AppID, and
provisioning profile:
1. Sign in to Apple Developer, then select Certificates,
Identifiers, and Profiles.
2. In the Identifiers section, select your iOS app identifier to
edit.
3. Check the Mac Catalyst capability to enable it, then click
the Configure button.
4. Choose Use an existing macOS AppID and select the
identifier you'd like to use from the popup menu. Click the
Save button to finish editing your AppID.
5. In the Profiles section, click the + button to create a new
profile, select ‘macOS App Development’, and click
Continue.
6. Select your iOS AppID from the popup, click Continue, and
complete the rest of the profile creation flow. When
finished, click the Download button.
7. In Xcode, select your project to view the Project Editor and
select your app’s target. Then select the Build Settings tab.
8. Set the Derive Mac Catalyst Product Bundle Identifier
setting to No.
9. Expand the Product Bundle Identifier build setting to view
its configurations. Next to the Debug configuration, click
the + button to add a conditional value.
10.For the build setting condition, select Any macOS from the
popup menu. Edit the value of the conditional build setting
to match the macOS bundle identifier you want to use.
Repeat this step for all configurations in your project.
11. In the Signing & Capabilities tab, uncheck Automatically
manage signing.
12.For your macOS app, select Import Profile from the
Provisioning Profile popup and then select the profile you
downloaded earlier.

Mail
Known Issues
• If your Mac contains both macOS Mojave 10.14 and
macOS 10.15 volumes, you might experience issues
searching in Mail. (46611310)

Workaround: While running macOS Mojave 10.14, open
Terminal and execute the following command:

sudo touch /.metadata_never_index_unless_rootfs
• 




Reboot into macOS 10.15, open Terminal and execute the
following command:

sudo touch /System/Volumes/
Data/.metadata_never_index_unless_rootfs
• 




Reboot into macOS Mojave 10.14, open Terminal and
execute the following command:

sudo mdutil -E /
• 




Depending on the size of your Mail database, it might take
many hours to reindex all content.
Music
Known Issues
• Navigating using the back button might produce
unexpected results. (51248128)
• You might be unable to scroll content on shelves.
(51248128)
• Artwork changes might not immediately appear; playlists
will be added in an upcoming beta. (51201715)

Networking
New Features
• All URLSessionTask instances with a GET HTTP method
which contain a body will now produce the error
NSURLErrorDataLengthExceedsMaximum. (46025234)
Known Issues
• The NWEthernetChannel API doesn’t currently support
VLAN interfaces. NEPacketTunnelProvider will see both
tagged and untagged frames arriving on physical
interfaces. Depending on the Ethernet driver, VLAN tags
might be processed by hardware and thus stripped off the
Ethernet frames thus NEPacketTunnelProvider won’t see
the VLAN tag. (51275655)
Deprecations
• Support for FTP and File URL schemes for Proxy
Automatic Configuration (PAC) is removed. HTTP and
HTTPS are the only supported URL schemes for PAC. This
affects all PAC configurations including but not limited to
configurations set using Settings, System Preferences,
profiles, URLSession APIs such as
connectionProxyDictionary, and
CFNetworkExecuteProxyAutoConfigurationURL(_:_:_:_:).
(28578280)
• SPDY support is removed from the URLSession and
NSURLConnection APIs. Servers should use HTTP 2 or
HTTP 1.1. (43391641)
• The Network Kernel Extension API is now deprecated.
(49284108)
• NetBIOS is disabled in macOS 10.15 to speed up
mounting, browsing, and connecting to SMB shares. Some
older printers and file servers may require NetBIOS to
connect. (51119111)

To enable NetBIOS, you can create or edit the /etc/
nsmb.conf file. If your system doesn't already have an /etc/
nsmb.conf file, use the following Terminal commands while
logged in as an Administrator:

echo "[default]" | sudo tee -a /etc/nsmb.conf
• echo "port445=both" | sudo tee -a /etc/nsmb.conf
• 




To disable NetBIOS, you can safely delete the /etc/
nsmb.conf file.

Photos

New Features
• To improve the Photos upgrade experience, Photos is
testing database upgrades using a clone of the Photo
Library. This clone doesn’t include the content of each
photo, but does include faces metadata and a thumbnail
image of each person in your library. It also contains
metadata such as the asset name and the geographic
location of the photo. It is created at ~/Pictures/macOS
10.15 Pre-Upgrade Backup, and you can manually remove
this backup at any time. The clone will be removed
automatically before the final release of macOS 10.15.
(51033690)

Podcasts
Known Issues
• Deleting podcasts using About This Mac > Storage >
Manage doesn’t update what’s shown in the Podcasts app
until it’s relaunched. (50354510)
• Setting “Automatically Download Episodes” to “Never”
might not take effect. (50960777)
Resolved Issues
• You can manually check for feed updates by selecting File
> Refresh Feeds. (50958585)
• The sidebar renders as expected. (51340728)
Privacy
Resolved Issues
• Apps that previously asked for access to services in the
System Preferences > Security & Privacy > Privacy pane
no longer ask for approval again after updating to macOS
Catalina beta 5. (51312574)

Quartz Composer

Deprecations
• Starting in macOS 10.15, the Quartz Composer framework
is deprecated and remains present for compatibility
purposes. Transition to frameworks such as Core Image,
SceneKit, or Metal. (50911608)

Screen Time
Known Issues
• Screen Time > Content & Privacy > Content > Web
Content > Allowed Websites Only isn’t currently enforced in
macOS 10.15 beta. (50462899)
Resolved Issues
• Users can no longer select “One more minute” multiple
times per day once they reach the limit for an app.
(48773803)

Scripting Language Runtimes


Deprecations
• Scripting language runtimes such as Python, Ruby, and
Perl are included in macOS for compatibility with legacy
software. Future versions of macOS won’t include scripting
language runtimes by default, and might require you to
install additional packages. If your software depends on
scripting languages, it’s recommended that you bundle the
runtime within the app. (49764202)
• Use of Python 2.7 isn’t recommended as this version is
included in macOS for compatibility with legacy software.
Future versions of macOS won’t include Python 2.7.
Instead, it’s recommended that you run python3 from within
Terminal. (51097165)

Security
Resolved Issues
• Opening some .dmg files signed before June 1, 2019 using
a Developer ID no longer incorrectly display an error
message. All .dmg files signed using a Developer ID after
June 1, 2019 must be notarized. For more information
about notarization, see Notarizing Your App Before
Distribution. (52234399)

Spotlight
Known Issues
• Mail messages might not display previews. (35678035)

SwiftUI
New Features
• You can now create a Color from a UIColor or NSColor.
(49833933)
• NSManagedObject now conforms to ObservableObject.
The new @FetchRequest property wrapper can drive
views from the results of a fetch request, and
managedObjectContext is now included in the
environment. (50280673)
• Gesture modifiers are renamed for consistency. For
example, tapAction(count:_:) is renamed
onTapGesture(count:perform:), and
longPressAction(minimumDuration:maximumDistance:_:pr
essing:) is renamed
onLongPressGesture(minimumDuration:maximumDistance
:pressing:perform:). (50395282)
• Text now has a default line limit of nil so that it wraps by
default. (51147116)
• ContentSizeCategory and several other enumerations are
now CaseIterable. (51168712)
• SegmentedControl is now a style of Picker. (51769046)
• BindableObject is replaced by the ObservableObject
protocol from the Combine framework. (50800624)

You can manually conform to ObservableObject by
defining an objectWillChange publisher that emits before
the object changes. However, by default,
ObservableObject automatically synthesizes
objectWillChange and emits before any @Published
properties change.

// RoomStore.swift
• import Foundation

• class RoomStore: ObservableObject {
• @Published var rooms: [Room] = []
• }

• struct Room: Identifiable {
• var id: UUID
• var name: String
• var capacity: Int
• var hasVideo: Bool
• }

• // ContentView.swift
• import SwiftUI

• struct ContentView: View {
• @ObservedObject var store: RoomStore

• var body: some View {
• NavigationView {
• List(store.rooms) { room in
• RoomCell(room: room)
• }
• .navigationBarTitle("Rooms")
• }
• }
• }
• 




@ObjectBinding is replaced by @ObservedObject.
• The Identifiable protocol is now part of the Swift standard
library. As a result, your model files no longer need to
import the SwiftUI framework. (SE-0261)
• The EnvironmentValues structure has four new properties
for reading accessibility values from the environment:
accessibilityDifferentiateWithoutColor,
accessibilityReduceTransparency,
accessibilityReduceMotion, and accessibilityInvertColors.
(51712481)
• The color(_:) text modifier is renamed foregroundColor(_:)
for consistency with the more general foregroundColor(_:)
view modifier. (50391847)
• The BindableObject protocol’s requirement is now
willChange instead of didChange, and should now be sent
before the object changes rather than after it changes. This
change allows for improved coalescing of change
notifications. (51580731)
• The RangeReplaceableCollection protocol is extended to
include a remove(atOffsets:) method and the
MutableCollection protocol is extended to include a
move(fromOffsets:toOffset:) method. Each new method
takes IndexSet instances that you use with the
onMove(perform:) and onDelete(perform:) modifiers on
ForEach views. (51991601)
• Added improved presentation modifiers:
sheet(isPresented:onDismiss:content:),
actionSheet(isPresented:content:), and
alert(isPresented:content:) — along with isPresented in the
environment — replace the previous presentation(_:),
Sheet, Modal, and PresentationLink types. (52075730)
• Updated the APIs for creating animations. The basic
animations are now named after the curve type — such as
linear and easeInOut. The interpolation-based
spring(mass:stiffness:damping:initialVelocity:) animation is
now
interpolatingSpring(mass:stiffness:damping:initialVelocity:),
and
fluidSpring(stiffness:dampingFraction:blendDuration:timest
ep:idleThreshold:) is now
spring(response:dampingFraction:blendDuration:) or
interactiveSpring(response:dampingFraction:blendDuration
:), depending on whether or not the animation is driven
interactively. (50280375)
• Added an initializer for creating a Font from a CTFont.
(51849885)
• You can style a NavigationView using two new style
properties: StackNavigationViewStyle and
DoubleColumnNavigationViewStyle. By default, navigation
views on iPhone and Apple TV visually reflect a navigation
stack, while on iPad and Mac, a split-view styled navigation
view displays. (51636729)

When using the DoubleColumnNavigationViewStyle style,
you can provide two views when creating a navigation view
— the first is the master and the second is the detail. For
example:

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



Known Issues
• Using Xcode 11 beta 4 with macOS Catalina beta 5
prevents previews from working. Update to Xcode 11 beta
5 to use previews. (52082331)
• Using the Path structure may cause your app to crash if
you’re using the SDKs included in Xcode 11 beta 5.
(53523206)
• Using a ForEach view with a complex expression in its
closure can may result in compiler errors.

Workaround: Extract those expressions into their own
View types. (53325810)
• Image instances don’t use resizing information configured
in asset catalogs. Configure the size of an image using the
resizable(capInsets:resizingMode:) modifier instead.
(49114577)
Deprecations
• The Command structure is replaced by passing selectors
directly. (53187891)
• NavigationDestinationLink and
DynamicNavigationDestinationLink are deprecated; their
functionality is now included in NavigationLink. (50630794)
• The Length type is replaced by CGFloat. (50654095)
• TabbedView is now named TabView. (51012120)
• HAlignment and VAlignment are now deprecated, use the
more flexible HorizontalAlignment or VerticalAlignment
types instead and use TextAlignment for text. (51190531)
• The SelectionManager protocol is removed, use Optional
and Set instances directly for selection. (51557694)
• The isPresented environment value is deprecated and
replaced with the more general presentationMode value.
(51641238)
• The StaticMember protocol is deprecated. Use protocol-
conforming types directly instead. For example, use an
instance of WheelPickerStyle directly rather than the wheel
static member.(52911961)
• Complex overloads for the background(_:alignment:) and
border(_:width:) modifiers are deprecated. Use shapes in a
background(_:alignment:) or overlay(_:alignment:) to draw
these instead. (53067530)
• SwiftUI APIs deprecated in previous betas are now
removed. (52587863)
• The identified(by:) method on the Collection protocol is
deprecated in favor of dedicated
init(_:id:selection:rowContent:) and init(_:id:content:)
initializers. (52976883, 52029393)

The retroactive conformance of Int to the Identifiable
protocol is removed. Change any code that relies on this
conformance to pass \.self to the id parameter of the
relevant initializer. Constant ranges of Int continue to be
accepted:

List(0..<5) {
• Text("Rooms")
• }
• 




However, you shouldn’t pass a range that changes at
runtime. If you use a variable that changes at runtime to
define the range, the list displays views according to the
initial range and ignores any subsequent updates to the
range.
• Several extensions to the Binding structure are removed.
(51624798)

If you have code such as the following:

struct LandmarkList: View {
• var landmark: [Landmark]
• @Binding var favorites: Set<Landmark>

• var body: some View {
• List(landmarks) { landmark in
• Toggle(landmark.name, isOn: self.
$favorites.contains(landmarkID))
• }
• }
• }
• 




Define the following subscript on the Set structure:

extension Set {
• subscript(member: Element) -> Bool {
• get { contains(member) }
• set {
• if newValue {
• insert(member)
• } else {
• remove(member)
• }
• }
• }
• }
• 




Then, change self.$favorites.contains(landmarkID) to self.
$favorites[landmarkID].
• The Binding structure’s conditional conformance to the
Collection protocol is removed. (51624798)

If you have code such as the following:

struct LandmarkList: View {
• @Binding var landmark: [Landmark]

• var body: some View {
• List(landmarks) { landmark in
• Toggle(landmark.value.name, isOn: landmark[\.isFavorite])
• }
• }
• }
• 




Define the following collection type:

struct IndexedCollection<Base: RandomAccessCollection>:
RandomAccessCollection {
• typealias Index = Base.Index
• typealias Element = (index: Index, element: Base.Element)

• let base: Base

• var startIndex: Index { base.startIndex }

• var endIndex: Index { base.startIndex }

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

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

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

• subscript(position: Index) -> Element {
• (index: position, element: base[position])
• }
• }

• extension RandomAccessCollection {
• func indexed() -> IndexedCollection<Self> {
• IndexedCollection(base: self)
• }
• }
• 




Then, update your code to:

struct LandmarkList: View {
• @Binding var landmarks: [Landmark]

• var body: some View {
• List(landmarks.indexed(), id: \.1.id) { (index, landmark) in
• Toggle(landmark.name, isOn: self.
$landmarks[index].isFavorite)
• }
• }
• }
• 



• The relativeWidth(_:), relativeHeight(_:), and


relativeSize(width:height:) modifiers are deprecated. Use
other modifiers like
frame(minWidth:idealWidth:maxWidth:minHeight:idealHeig
ht:maxHeight:alignment:) instead. (51494692)

Xcode
Deprecations
• Command line tool support for Subversion — including
svn, git-svn, and related commands — is no longer
provided by Xcode. If you need Subversion or related
command line tools, install the Command Line Tools
package by running xcode-select --install. (50266910)

S-ar putea să vă placă și