2017-03-23 7 views
0

私はswift 3、xCode 8.2、IOS10でアプリを作っています。インターフェースには熱視覚スクリーン(FLIR ONE)があります。私の質問は、写真を撮るにはどうすればいいですか?私のコードは:IOS 10 - Swift 3.0:委譲された機能を停止して画像を保存します

import UIKit 

class ThermalCameraVC: UIViewController, FLIROneSDKImageReceiverDelegate, FLIROneSDKStreamManagerDelegate { 


    //MARK: OUTLETS 
    @IBOutlet weak var imageView: UIImageView! 
    @IBOutlet weak var labelStatusCamera: UITextField! 
    @IBOutlet weak var labelCargeCamera: UITextField! 
    @IBOutlet weak var icnCancelPicture: UIButton! 
    @IBOutlet weak var icnUploadPicture: UIButton! 
    @IBOutlet weak var iconTakePicture: UIButton! 


    //MARK: VARIABLES 
    var simulatorStatus = false 
    var cameraBussy = false 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     FLIROneSDKStreamManager.sharedInstance().addDelegate(self) 
     FLIROneSDKStreamManager.sharedInstance().imageOptions = FLIROneSDKImageOptions(rawValue: FLIROneSDKImageOptions.blendedMSXRGBA8888Image.rawValue)! 

     icnCancelPicture.isHidden = true 
     icnUploadPicture.isHidden = true 
    } 

    //MARK: CANCEL PICTURE 
    @IBAction func cancelPicture(_ sender: Any) { 
     cameraBussy = false 
    } 


    //MARK: UPLOAD PICTURE AMAZON S3 
    @IBAction func uploadPicture(_ sender: Any) { 


    } 

    func flirOneSDKDelegateManager(_ delegateManager: FLIROneSDKDelegateManager!, didReceiveBlendedMSXRGBA8888Image msxImage: Data!, imageSize size: CGSize){ 
    let image = FLIROneSDKUIImage(format: FLIROneSDKImageOptions.blendedMSXRGBA8888Image, andData: msxImage, andSize: size) 

     //HERE I NEED TO STOP THE DELEGATED FUNCTION TO SAVE THE IMAGE !! 
     if self.cameraBussy{ 
      //cameraBussy = false 

     }else{ 
      DispatchQueue.main.async{ 

       self.imageView.image = image 
      } 

     } 
    } 

    @IBAction func takeThermalPicture(_ sender: Any) { 
     cameraBussy = true 
     icnCancelPicture.isHidden = false 
     icnUploadPicture.isHidden = false 
     iconTakePicture.isHidden = true 
    } 

    } 

この委任された機能のデータフローを停止するにはどうすればよいですか?それは絶え間なく叫んでいるからです。

+0

delegate関数flirOneSDKDelegateManagerを1回だけ呼び出すのですか? – adarshaU

+0

ボタンカメラでusserを押すとデリゲート機能を停止したい。この瞬間、usserはAPI Restに送るためにこのフレームを必要とするからです。 –

答えて

0

デリゲート値をnilに設定します。

@IBAction func takeThermalPicture(_ sender: Any) { 

     FLIROneSDKStreamManager.sharedInstance().addDelegate(nil) 
     cameraBussy = true 
     icnCancelPicture.isHidden = false 
     icnUploadPicture.isHidden = false 
     iconTakePicture.isHidden = true 

    } 
関連する問題