ios - Use of unresolved identifier 'messageLabel' -
i'm having issue:
use of unresolved identifier 'messagelabel'
(twice line 84 & 97) and
use of unresolved identifier 'metadataobj'
(line 102)
on next code:
// // viewcontroller.swift // qr code 2 // // created msys on 1/26/16. // copyright © 2016 msys. rights reserved. // import uikit import avfoundation class viewcontroller: uiviewcontroller, avcapturemetadataoutputobjectsdelegate { override func viewdidload() { super.viewdidload() // additional setup after loading view, typically nib. // instance of avcapturedevice class initialize device object , provide video // media type parameter. let capturedevice = avcapturedevice.defaultdevicewithmediatype(avmediatypevideo) // instance of avcapturedeviceinput class using previous device object. var error:nserror? let input: anyobject? { let capturedevice = avcapturedevice.defaultdevicewithmediatype( avmediatypevideo ) input = try avcapturedeviceinput.init( device: capturedevice ) } catch { if let error = error nserror? { print( "<error>", error.code, error.domain, error.localizeddescription ) } return } if let input = input as! avcaptureinput? { // tutorial should fine point... } if (error != nil) { // if error occurs, log description of , don't continue more. print("\(error?.localizeddescription)") return } // initialize capturesession object. capturesession = avcapturesession() // set input device on capture session. capturesession?.addinput(input as! avcaptureinput) // initialize avcapturemetadataoutput object , set output device capture session. let capturemetadataoutput = avcapturemetadataoutput() capturesession?.addoutput(capturemetadataoutput) // set delegate , use default dispatch queue execute call capturemetadataoutput.setmetadataobjectsdelegate(self, queue: dispatch_get_main_queue()) capturemetadataoutput.metadataobjecttypes = [avmetadataobjecttypeqrcode] // initialize video preview layer , add sublayer viewpreview view's layer. videopreviewlayer = avcapturevideopreviewlayer(session: capturesession) videopreviewlayer?.videogravity = avlayervideogravityresizeaspectfill videopreviewlayer?.frame = view.layer.bounds view.layer.addsublayer(videopreviewlayer!) // start video capture. capturesession?.startrunning() // initialize qr code frame highlight qr code qrcodeframeview = uiview() qrcodeframeview?.layer.bordercolor = uicolor.greencolor().cgcolor qrcodeframeview?.layer.borderwidth = 2 view.addsubview(qrcodeframeview!) view.bringsubviewtofront(qrcodeframeview!) func captureoutput(captureoutput: avcaptureoutput!, didoutputmetadataobjects metadataobjects: [anyobject]!, fromconnection connection: avcaptureconnection!) { // check if metadataobjects array not nil , contains @ least 1 object. if metadataobjects == nil || metadataobjects.count == 0 { qrcodeframeview?.frame = cgrectzero messagelabel.text = "no qr code detected" return } // metadata object. let metadataobj = metadataobjects[0] as! avmetadatamachinereadablecodeobject if metadataobj.type == avmetadataobjecttypeqrcode { // if found metadata equal qr code metadata update status label's text , set bounds let barcodeobject = videopreviewlayer?.transformedmetadataobjectformetadataobject(metadataobj avmetadatamachinereadablecodeobject) as! avmetadatamachinereadablecodeobject qrcodeframeview?.frame = barcodeobject.bounds; if metadataobj.stringvalue != nil { messagelabel.text = metadataobj.stringvalue } } } let barcodeobject = videopreviewlayer?.transformedmetadataobjectformetadataobject(metadataobj avmetadatamachinereadablecodeobject) avmetadatamachinereadablecodeobject qrcodeframeview?.frame = barcodeobject.bounds } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } var capturesession:avcapturesession? var videopreviewlayer:avcapturevideopreviewlayer? var qrcodeframeview:uiview? }
you have not defined messagelabel variable anywhere in code, trying set property of undefined variable throws error.
edit: try linking label storyboard viewcontroller , call messagelabel.
with metadataobj, have defined inside function, attempting use outside of function.
Comments
Post a Comment