Skip to content

Commit

Permalink
Fixed Swift runtime failure/crash during unexpected capture() call
Browse files Browse the repository at this point in the history
'Unexpectedly found nil while implicitly unwrapping an Optional value'
  • Loading branch information
scarlac committed Nov 3, 2023
1 parent 11b116c commit 11b15fd
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
6 changes: 3 additions & 3 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost: 57d2868c099736d80fcd648bf211b4431e51a558
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
DoubleConversion: cde416483dac037923206447da6e1454df403714
FBLazyVector: f637f31eacba90d4fdeff3fa41608b8f361c173b
FBReactNativeSpec: 0d9a4f4de7ab614c49e98c00aedfd3bfbda33d59
Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0
Expand All @@ -588,7 +588,7 @@ SPEC CHECKSUMS:
Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541
FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
hermes-engine: 47986d26692ae75ee7a17ab049caee8864f855de
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
Expand Down Expand Up @@ -619,7 +619,7 @@ SPEC CHECKSUMS:
React-RCTVibration: 43ffd976a25f6057a7cf95ea3648ba4e00287f89
React-runtimeexecutor: 7c51ae9d4b3e9608a2366e39ccaa606aa551b9ed
ReactCommon: 85c98ab0a509e70bf5ee5d9715cf68dbf495b84c
ReactNativeCameraKit: d95d3e19c514526a234d9f93c6db7e7f10eef9ea
ReactNativeCameraKit: 7c273034b2674cf5ccbaab2e25d9ff15b3e7d698
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
Yoga: 065f0b74dba4832d6e328238de46eb72c5de9556
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
Expand Down
9 changes: 6 additions & 3 deletions ios/ReactNativeCameraKit/CameraManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,25 @@ import Foundation
* Class managing the communication between React Native and the native implementation
*/
@objc(CKCameraManager) public class CameraManager: RCTViewManager {
var camera: CameraView!
var camera: CameraView?

override public static func requiresMainQueueSetup() -> Bool {
return true
}

override public func view() -> UIView! {
camera = CameraView()

return camera
}

@objc func capture(_ options: NSDictionary,
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock) {
camera.capture(options as! [String: Any],
guard let cam = self.camera else {
reject("capture_error", "CKCamera capture() was called but camera view is nil", nil)
return
}
cam.capture(options as! [String: Any],
onSuccess: { resolve($0) },
onError: { reject("capture_error", $0, nil) })
}
Expand Down

0 comments on commit 11b15fd

Please sign in to comment.