From 68858dfb4bd47dafa26bd30d52857035901aa40b Mon Sep 17 00:00:00 2001 From: Natalia Terlecka Date: Thu, 30 Jul 2015 14:04:15 +0100 Subject: [PATCH] Syntax updated for Swift 2.0 --- CameraManager/Info.plist | 2 +- Podfile | 3 - camera.xcodeproj/project.pbxproj | 7 +- .../UserInterfaceState.xcuserstate | Bin 57871 -> 61239 bytes .../xcschemes/CameraManager.xcscheme | 5 +- .../xcschemes/camera.xcscheme | 11 ++- camera/CameraManager.swift | 71 +++++++++++------- camera/Info.plist | 2 +- camera/ViewController.swift | 1 - 9 files changed, 63 insertions(+), 39 deletions(-) delete mode 100644 Podfile diff --git a/CameraManager/Info.plist b/CameraManager/Info.plist index cde50a8..d3de8ee 100644 --- a/CameraManager/Info.plist +++ b/CameraManager/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Podfile b/Podfile deleted file mode 100644 index 1f8213d..0000000 --- a/Podfile +++ /dev/null @@ -1,3 +0,0 @@ -platform :ios, '8.0' - -pod 'CameraManager', :git => 'https://gist.github.com/2204678.git' \ No newline at end of file diff --git a/camera.xcodeproj/project.pbxproj b/camera.xcodeproj/project.pbxproj index 29fa40f..92c29c5 100644 --- a/camera.xcodeproj/project.pbxproj +++ b/camera.xcodeproj/project.pbxproj @@ -202,7 +202,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0600; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = imaginaryCloud; TargetAttributes = { 454C1F4019E82E2500C81915 = { @@ -323,6 +323,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -389,6 +390,7 @@ INFOPLIST_FILE = camera/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = cameraDemo; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -400,6 +402,7 @@ INFOPLIST_FILE = camera/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = cameraDemo; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -422,6 +425,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -444,6 +448,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; diff --git a/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate b/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate index c4f063472c48c5bb75073d4de806f442fc45e070..597e90e06c8c6bd3a329fa188bb60207330f0f53 100644 GIT binary patch delta 29062 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 XAFn^#qD9M=e<6Lxg1`R%RxkK3S(rgc diff --git a/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme b/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme index d5d217f..472e20c 100644 --- a/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme +++ b/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme @@ -1,6 +1,6 @@ + + + + - + - + CameraState { if self._canLoadCamera() { - if let validEmbedingView = self.embedingView { + if let _ = self.embedingView { if let validPreviewLayer = self.previewLayer { validPreviewLayer.removeFromSuperlayer() } @@ -466,7 +470,11 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { if (captureDevice.position == AVCaptureDevicePosition.Back) { let avTorchMode = AVCaptureTorchMode(rawValue: flashMode.rawValue) if (captureDevice.isTorchModeSupported(avTorchMode!)) { - captureDevice.lockForConfiguration(nil) + do { + try captureDevice.lockForConfiguration() + } catch { + return; + } captureDevice.torchMode = avTorchMode! captureDevice.unlockForConfiguration() } @@ -612,9 +620,12 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { { self.embedingView = view dispatch_async(dispatch_get_main_queue(), { () -> Void in - self.previewLayer?.frame = view.layer.bounds + guard let _ = self.previewLayer else { + return + } + self.previewLayer!.frame = view.layer.bounds view.clipsToBounds = true - view.layer.addSublayer(self.previewLayer) + view.layer.addSublayer(self.previewLayer!) }) } @@ -640,8 +651,6 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { private func _addVideoInput() { - var error: NSError? - if (self.frontCamera == nil) || (self.rearCamera == nil) { var videoFrontDevice: AVCaptureDevice? var videoBackDevice: AVCaptureDevice? @@ -652,18 +661,20 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { videoFrontDevice = device as? AVCaptureDevice } } - if (self.frontCamera == nil) { - if let validVideoFrontDevice = videoFrontDevice { - self.frontCamera = AVCaptureDeviceInput.deviceInputWithDevice(validVideoFrontDevice, error: &error) as! AVCaptureDeviceInput + do { + if (self.frontCamera == nil) { + if let validVideoFrontDevice = videoFrontDevice { + try self.frontCamera = AVCaptureDeviceInput(device: validVideoFrontDevice) + } } - } - if (self.rearCamera == nil) { - if let validVideoBackDevice = videoBackDevice { - self.rearCamera = AVCaptureDeviceInput.deviceInputWithDevice(validVideoBackDevice, error: &error) as! AVCaptureDeviceInput + if (self.rearCamera == nil) { + if let validVideoBackDevice = videoBackDevice { + try self.rearCamera = AVCaptureDeviceInput(device: validVideoBackDevice) + } } - } - if let validError = error { - self._show(NSLocalizedString("Device setup error occured", comment:""), message: validError.localizedDescription) + } catch let outError { + self._show(NSLocalizedString("Device setup error occured", comment:""), message: "\(outError)") + return } } self.cameraDevice = _cameraDevice @@ -672,12 +683,12 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { private func _setupMic() { if (self.mic == nil) { - var error: NSError? - let micDevice:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio); - self.mic = AVCaptureDeviceInput.deviceInputWithDevice(micDevice, error: &error) as? AVCaptureDeviceInput; - if let errorHappened = error { + let micDevice:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio) + do { + try self.mic = AVCaptureDeviceInput(device: micDevice) + } catch let outError { self.mic = nil - self._show(NSLocalizedString("Mic error", comment:""), message: errorHappened.description) + self._show(NSLocalizedString("Mic error", comment:""), message: "\(outError)") } } } @@ -762,7 +773,11 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { if (captureDevice.position == AVCaptureDevicePosition.Back) { let avFlashMode = AVCaptureFlashMode(rawValue: flashMode.rawValue) if (captureDevice.isFlashModeSupported(avFlashMode!)) { - captureDevice.lockForConfiguration(nil) + do { + try captureDevice.lockForConfiguration() + } catch { + return + } captureDevice.flashMode = avFlashMode! captureDevice.unlockForConfiguration() } diff --git a/camera/Info.plist b/camera/Info.plist index 18156b1..3d4c0b4 100644 --- a/camera/Info.plist +++ b/camera/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - cameraDemo + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/camera/ViewController.swift b/camera/ViewController.swift index 6178967..6677781 100644 --- a/camera/ViewController.swift +++ b/camera/ViewController.swift @@ -124,7 +124,6 @@ class ViewController: UIViewController { self.cameraManager.startRecordingVideo() } else { self.cameraManager.stopRecordingVideo({ (videoURL, error) -> Void in - println(videoURL) if let errorOccured = error { self.cameraManager.showErrorBlock(erTitle: "Error occurred", erMessage: errorOccured.localizedDescription) }