Loading...
Loading...
Compare original and translation side by side
MainActoractornonisolatedSendableMainActoractornonisolatedSendable@MainActor@MainActor@MainActor@MainActorfunc fetchUser(id: Int) async throws -> User {
let (data, _) = try await URLSession.shared.data(from: url)
return try JSONDecoder().decode(User.self, from: data)
}
async let avatar = fetchImage("avatar.jpg")
async let banner = fetchImage("banner.jpg")
let profile = Profile(avatar: try await avatar, banner: try await banner)func fetchUser(id: Int) async throws -> User {
let (data, _) = try await URLSession.shared.data(from: url)
return try JSONDecoder().decode(User.self, from: data)
}
async let avatar = fetchImage("avatar.jpg")
async let banner = fetchImage("banner.jpg")
let profile = Profile(avatar: try await avatar, banner: try await banner).task { avatar = await downloadAvatar() }
Task { await saveProfile() }
try await withThrowingTaskGroup(of: Void.self) { group in
group.addTask { avatar = try await downloadAvatar() }
group.addTask { bio = try await fetchBio() }
try await group.waitForAll()
}.task { avatar = await downloadAvatar() }
Task { await saveProfile() }
try await withThrowingTaskGroup(of: Void.self) { group in
group.addTask { avatar = try await downloadAvatar() }
group.addTask { bio = try await fetchBio() }
try await group.waitForAll()
}@MainActor
final class ViewModel {
var items: [Item] = []
}
actor BankAccount {
var balance: Double = 0
func deposit(_ amount: Double) { balance += amount }
}@MainActor
final class ViewModel {
var items: [Item] = []
}
actor BankAccount {
var balance: Double = 0
func deposit(_ amount: Double) { balance += amount }
}SWIFT_DEFAULT_ACTOR_ISOLATION = MainActorSWIFT_APPROACHABLE_CONCURRENCY = YES@concurrent func processLargeFile() async { }SWIFT_DEFAULT_ACTOR_ISOLATION = MainActorSWIFT_APPROACHABLE_CONCURRENCY = YES@concurrent func processLargeFile() async { }struct User: Sendable {
let id: Int
let name: String
}
final class ThreadSafeCache: @unchecked Sendable {
private let lock = NSLock()
private var storage: [String: Data] = [:]
}struct User: Sendable {
let id: Int
let name: String
}
final class ThreadSafeCache: @unchecked Sendable {
private let lock = NSLock()
private var storage: [String: Data] = [:]
}Task { }Task.detached { }Task { }Task.detached { }@concurrent@concurrentasync@MainActorMainActor.runDispatchSemaphoreDispatchGroup.wait()Taskasync letasync@MainActorMainActor.runDispatchSemaphoreDispatchGroup.wait()Taskasync letasyncawaitTask { }actorSendableasyncawaitTask { }actorSendable@Observable@MainActor@MainActor@Observable@MainActor@MainActor@Observable@StateObservableObject@StateObject@ObservedObject@Observable@StateObservableObject@StateObject@ObservedObjectreplacing("hello", with: "world")replacingOccurrences(of: "hello", with: "world")replacing("hello", with: "world")replacingOccurrences(of: "hello", with: "world")URL.documentsDirectoryappending(path:)URL.documentsDirectoryappending(path:)Text(String(format: "%.2f", abs(myNumber)))Text(abs(change), format: .number.precision(.fractionLength(2)))Text(String(format: "%.2f", abs(myNumber)))Text(abs(change), format: .number.precision(.fractionLength(2))).circleCircle().borderedProminentBorderedProminentButtonStyle().circleCircle().borderedProminentBorderedProminentButtonStyle()DispatchQueue.main.async()DispatchQueue.main.async()localizedStandardContains()contains()localizedStandardContains()contains()trytry