- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个适用于 IOS 的 QRCode 扫描仪应用程序,具有两个 View 。当我在 iPad 2 上编译并启动该应用程序并单击工具栏上的按钮时,我在两个类上都收到一个带有子代码 0xe77ffdefe 的 EXC_BREAKPOINT。
class ViewController: UIViewController {
@IBAction func showQRView(sender: AnyObject){
let secondView:QRCodeViewController = QRCodeViewController()
self.presentViewController(secondView, animated: true, completion: nil)
}//end of showQRView
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}}
二等
class QRCodeViewController: UIViewController,AVCaptureMetadataOutputObjectsDelegate {
@IBAction func closeView(sender:AnyObject)
self.dismissViewControllerAnimated(true, completion: nil)
}
@IBOutlet weak var messageLabel:UILabel!
var captureSession:AVCaptureSession?
var videoPreviewLayer:AVCaptureVideoPreviewLayer?
var qrCodeFrameView:UIView?a
let supportedBarCodes = [AVMetadataObjectTypeQRCode, AVMetadataObjectTypeCode128Code, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeUPCECode, AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeAztecCode]
override func viewDidLoad() {
super.viewDidLoad()
messageLabel.frame = CGRectMake(0, 0, 768, 71)
messageLabel.backgroundColor = UIColor.blackColor()
messageLabel.textColor = UIColor(colorLiteralRed: 0.0, green: 255.0, blue: 0.0, alpha: 1.0)
messageLabel.textAlignment = NSTextAlignment.Center
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
let input = try AVCaptureDeviceInput(device: captureDevice)
captureSession = AVCaptureSession()
captureSession?.addInput(input)
let captureMetadataOutput = AVCaptureMetadataOutput()
captureSession?.addOutput(captureMetadataOutput)
captureMetadataOutput.setMetadataObjectsDelegate(self, queue: dispatch_get_main_queue())
captureMetadataOutput.metadataObjectTypes = supportedBarCodes
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
videoPreviewLayer?.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer!)
captureSession?.startRunning()
view.bringSubviewToFront(messageLabel)
qrCodeFrameView = UIView()
if let qrCodeFrameView = qrCodeFrameView {
qrCodeFrameView.layer.borderColor = UIColor.greenColor().CGColor
qrCodeFrameView.layer.borderWidth = 2
view.addSubview(qrCodeFrameView)
view.bringSubviewToFront(qrCodeFrameView)
}
} catch {
print(error)
return
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func captureOutput(captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [AnyObject]!, fromConnection connection: AVCaptureConnection!) {
if metadataObjects == nil || metadataObjects.count == 0 {
qrCodeFrameView?.frame = CGRectZero
messageLabel.text = "No QR code is detected"
return
}
let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject
if supportedBarCodes.contains(metadataObj.type) {
let barCodeObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj)
qrCodeFrameView?.frame = barCodeObject!.bounds
if metadataObj.stringValue != nil {
messageLabel.text = metadataObj.stringValue
}
}
}
}
最佳答案
问题是,调用 QRCodeViewController() 会创建一个 QRCodeViewController 实例,该实例对您在界面生成器中设计的 View 一无所知。相反,您需要告诉 Storyboard为您实例化一个实例。
打开 Storyboard并选择您的 QRCodeViewController 场景。打开右侧 Pane (实用程序),然后单击顶部的身份检查器图标(看起来像一张小身份证)。在“ Storyboard ID”框中填写唯一的字符串。
现在,回到代码中,将 @IBAction func showQRView(sender: AnyObject)
函数的内容替换为以下内容
let storyboard = UIStoryboard(name: "STORY_BOARD_NAME_HERE", bundle: nil)
let secondView = storyboard.instantiateViewControllerWithIdentifier("ID_YOU_SET_EARLIER_HERE") as! QRCodeViewController
self.presentViewController(secondView, animated: true, completion: nil)
关于ios - 适用于 IOS 的 QRCode 扫描器应用程序出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38843687/
我是编程初学者(学习Java)。我正在尝试编写一个程序,其中列出了四个不同的选项供用户选择。 这是其中的一部分: import java.util.*; public class fight
这个问题已经有答案了: nextDouble() throws an InputMismatchException when I enter a double (2 个回答) 已关闭 8 年前。 我的
为什么下面的代码返回 false? Scanner sc = new Scanner("-v "); sc.useDelimiter("-[a-zA-Z]\\s+"); System.out.prin
我这里有一个由两部分组成的问题。因此,我正在为一个作业编写代码,尝试从文本文件中读取整数作为坐标。例如,我有一个标题为 test1 的文本文件,其内容如下:50 00 510 53 310 0。现在,
当我尝试通过单步执行每一行来调试简单的 Java 代码时,我可以成功调试它。但是,如果我通过进入每一行来调试它,我最终会得到“找不到源”。 import java.util.*; public
我正在尝试接受一个字符串输入,该输入由多行以“,”和“;”分隔的数字组成. 示例: 1,2;3,4;5,6; 9,8;7,6; 0,1; ; 代码: ArrayList alist = new Arr
我想问一个关于我的代码的问题。 对于它的低效和困惑我深表歉意,我还在努力学习java。 System.out.println("Please choose the number corresp
现在选择菜单上的每个选项都可以正常工作(感谢 Tarek Salah 和 dasblinkenlight 的帮助)。现在的问题是,当我选择一个需要我输入新单词的选项(例如选项 3,用户必须输入歌曲名称
我有一个数据文件,其中多个连续行上有斜杠分隔的整数。 这是我想用来读取和打印所有这些整数的一小段代码: import java.util.Scanner; import java.io.File; c
这个问题在这里已经有了答案: Scanner class skips over whitespace (5 个答案) 关闭 7 年前。 我做了一个简单的程序,允许用户输入一个名字然后问候他。 imp
我想使用手写的降序解析器来解析一些文本。我使用了带有以下分隔符的 Scanner:"\\s*"。不幸的是,这个模式匹配一个空字符串的事实似乎让每个 hasNextFoo 和 nextFoo 都不再
Stackoverflow,你好。我无法理解这段代码的输出 public static void main (String[] args) { String context = "0100 5
我需要编写一个java程序,获取所有计算机网络接口(interface)并扫描子网内的IP地址和MAC地址。 我不太确定该怎么做,但我发现有一个方法叫做: Arping.scan(deviceName
Sonar 提示 Scanner 应该一直关闭,对吗? Scanner scanner = new Scanner("simple string") 此扫描仪不是从文件等扫描。为什么要关闭它? 最佳答
我正在使用 Java Scanner 对象来解析文本文件。我需要扫描部分文件两次(出于性能原因,这样我就不必临时存储其内容)。 因此,是否有一种方法可以将扫描仪“倒回”到特定文件位置? 或者,有没有一
我正在为我的一门类(class)做一个实验室,因此我更多地是在寻找解释而不是实际代码。 对于此作业的一部分,我需要从用户那里读取数字,直到按下 control-d。我在一个方法中有一个 while 循
我正在尝试构建一个程序,我想在其中输入(使用扫描仪)一些数字,例如 5,3,6,65,33,1,24,12,然后使用 2 个线程打印它们。第一个线程将打印从低到高,第二个线程将打印从高到低。我将在这里
我编写了一段简短的 Java 代码来计算用户使用 Scanner 输入的两个整数的乘积。用户被迫输入整数值。代码如下所示。 import java.util.Scanner; public class
我在我的 java 项目中遇到以下异常。 Exception in thread "main" java.util.NoSuchElementException at java.util.Sc
我有一串 float ,例如 1.0000\0.0000\0.0000\0.00000\1.0000\0.0000\0.0000 我需要解析它。我使用 Java 扫描仪并使用反斜杠作为分隔符。它已经以
我是一名优秀的程序员,十分优秀!