From 7d2d484dd9a36d691ae36b7d5dad1a0c96a2beca Mon Sep 17 00:00:00 2001 From: Seyed Mojtaba Hosseini Zeidabadi Date: Tue, 24 Feb 2026 12:32:58 +0330 Subject: [PATCH 1/3] feat: enhance swift api usage and eliminate the force cast to RiveImageAsset --- Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift b/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift index 7dd627dc..6d546542 100644 --- a/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift +++ b/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift @@ -13,7 +13,7 @@ struct SwiftSimpleAssets: DismissableView { var dismiss: () -> Void = {} @StateObject private var riveViewModel = RiveViewModel(fileName: "simple_assets", autoPlay: false, loadCdn: false, customLoader: { (asset: RiveFileAsset, data: Data, factory: RiveFactory) -> Bool in - if (asset is RiveImageAsset){ + if let asset = asset as? RiveImageAsset { guard let url = (.main as Bundle).url(forResource: asset.uniqueName(), withExtension: "jpeg") else { fatalError("Failed to locate '\(asset.uniqueName())' in bundle.") @@ -21,7 +21,7 @@ struct SwiftSimpleAssets: DismissableView { guard let data = try? Data(contentsOf: url) else { fatalError("Failed to load \(url) from bundle.") } - (asset as! RiveImageAsset).renderImage( + asset.renderImage( factory.decodeImage(data) ) return true; From 012cd005db24e57963e9ce2161174e1b6d34139b Mon Sep 17 00:00:00 2001 From: Seyed Mojtaba Hosseini Zeidabadi Date: Tue, 24 Feb 2026 12:33:15 +0330 Subject: [PATCH 2/3] feat: enhance swift api usage and eliminate the force cast to RiveFontAsset --- Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift b/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift index 6d546542..ca2b67ed 100644 --- a/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift +++ b/Example-iOS/Source/Examples/SwiftUI/SwiftSimpleAssets.swift @@ -25,7 +25,7 @@ struct SwiftSimpleAssets: DismissableView { factory.decodeImage(data) ) return true; - }else if (asset is RiveFontAsset) { + }else if let asset = asset as? RiveFontAsset { guard let url = (.main as Bundle).url(forResource: asset.uniqueName(), withExtension: asset.fileExtension()) else { fatalError("Failed to locate '\(asset.uniqueName())' in bundle.") } @@ -33,7 +33,7 @@ struct SwiftSimpleAssets: DismissableView { fatalError("Failed to load \(url) from bundle.") } - (asset as! RiveFontAsset).font( + asset.font( factory.decodeFont(data) ) return true; From 446d400627b0787579bbf73d9b60c035df218ef8 Mon Sep 17 00:00:00 2001 From: Seyed Mojtaba Hosseini Zeidabadi Date: Tue, 24 Feb 2026 12:34:16 +0330 Subject: [PATCH 3/3] feat: enhance swift api usage and eliminate the force cast to RiveAudioAsset --- .../Source/Examples/SwiftUI/SwiftOutOfBandAudioAssets.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example-iOS/Source/Examples/SwiftUI/SwiftOutOfBandAudioAssets.swift b/Example-iOS/Source/Examples/SwiftUI/SwiftOutOfBandAudioAssets.swift index b6a82da5..1b6177db 100644 --- a/Example-iOS/Source/Examples/SwiftUI/SwiftOutOfBandAudioAssets.swift +++ b/Example-iOS/Source/Examples/SwiftUI/SwiftOutOfBandAudioAssets.swift @@ -21,7 +21,7 @@ struct SwiftOutOfBandAudioAssets: DismissableView { loadCdn: false, customLoader: { (asset: RiveFileAsset, data: Data, factory: RiveFactory) -> Bool in - if (asset is RiveAudioAsset){ + if let asset = asset as? RiveAudioAsset { guard let url = (.main as Bundle).url(forResource: asset.uniqueName(), withExtension: asset.fileExtension()) else { fatalError("Failed to load asset \(asset.uniqueFilename()) from bundle.") } @@ -33,7 +33,7 @@ struct SwiftOutOfBandAudioAssets: DismissableView { return false } - (asset as! RiveAudioAsset).audio(decoded) + asset.audio(decoded) return true; }