当前位置: 首页 > news >正文

网址大全100个/站优云seo优化

网址大全100个,站优云seo优化,广州 网站建设,昆明城乡建设局网站目录:[Swift]Xcode实际操作 本文将演示如何使用光学字符识别技术,识别信用卡上的卡号。 OCR技术是光学字符识别的缩写(Optical Character Recognition), 是通过扫描等光学输入方式将各种文字转化为图像信息, 再利用文字识别技术将…

目录:[Swift]Xcode实际操作

本文将演示如何使用光学字符识别技术,识别信用卡上的卡号。

OCR技术是光学字符识别的缩写(Optical Character Recognition),

是通过扫描等光学输入方式将各种文字转化为图像信息,

再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。

首先在浏览器的地址栏输入需要下载的第三方类库:card.io-iOS-SDK

将解压后的文件夹【CardIO】拖动到项目【DemoApp】中,

保持选项的默认设置,点击【Finish】完成文件夹的添加。

【CardIO】文件夹主要包含了三个库文件和一些头文件。

点击项目名称【DemoApp】,打开项目信息面板。

进入【Build Settings】编译设置面板。

在右上角搜索输入框内输入需要搜索的关键词:【Other Linker Flags】。

找到所需的选项后,在右侧双击弹出设置框。

在弹出的面板中,点击弹出面板左下角的【+】图标,进入文字输入状态。

然后输入链接器参数:【-lc++】

链接器做的事,就是把目标文件和所用的一些库链接在一起,形成一个完整的可执行文件。

从代码到可执行文件经历的步骤是:

【源代码】->【预处理器】->【编译器】->【汇编器】->【机器码】->【链接器】->【可执行文件】

点击弹出面板左下角的【+】图标,再添加一个输入链接器参数:【-ObjC】

添加了链接器参数:【-ObjC】后,链接器就会把静态库中所有的OC类和分类,都加载到最后的可执行文件中。

在链接器设置面板外部点击,完成参数的设置。

进入【Build Phases】编译阶段设置面板。

在【Link Binary With Libraries】选项中,点击【+】往项目中添加需要用到的五个框架。

在弹出窗口顶部的搜索框内,输入待添加的框架的名称:

【Accelerate.framework】:在框架名称上双击,引入该框架

【AVFoundation.framework】:在框架名称上双击,引入该框架

【AudioToolbox.framework】:在框架名称上双击,引入该框架

【CoreMedia.framework】:在框架名称上双击,引入该框架

【MobileCoreServices.framework】:在框架名称上双击,引入该框架

进入【Build Settings】编译设置面板。

在右上角搜索输入框内输入需要搜索的关键词:【Enable Modules】。

【Enable Modules】属性在默认情况下已经激活,如果没有激活的话,请把它调整为激活状态。

在右上角搜索输入框内输入需要搜索的关键词:【Link Frameworks Automatically】。

【Link Frameworks Automatically】属性在默认情况下已经激活,如果没有激活的话,请把它调整为激活状态。

在【CardIO】文件夹上点击鼠标右键,弹出右键菜单。

要在代码中调用文字识别框架的OC头文件,需要往项目中添加一个桥接头文件。

【New File】->【Header File】->【Next】->【Save As】:CardIO-Swift-Bridging-Header.h->【Create】

在桥接头文件【CardIO-Swift-Bridging-Header.h】中引入需要用到的头文件。

 1 #ifndef CardIO_Swift_Bridging_Header_h
 2 #define CardIO_Swift_Bridging_Header_h
 3 
 4 #import "CardIO.h"
 5 //在桥接头文件中引入需要用到的头文件。
 6 @import AudioToolbox;
 7 @import AVFoundation;
 8 @import CoreMedia;
 9 @import CoreVideo;
10 @import MobileCoreServices;
11 
12 #endif /* CardIO_Swift_Bridging_Header_h */

然后点击项目名称【DemoApp】,进入项目属性设置面板,确保桥接头文件,已经被项目所引用。

进入【Build Settings】编译设置面板。

在右上角搜索输入框内输入需要搜索的关键词:【Bridging Header】。

然后在【Objective-C Bridging Header】文件属性右侧双击,弹出桥接头文件属性设置面板。

接着输入桥接文件,在项目中的存储路径:DemoApp/CardIO/CardIO-Swift-Bridging-Header.h

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

准备工作已经全部完成,现在开始编写代码,实现识别卡号的功能。

 1 import UIKit
 2 
 3 //首先导入需要用到的代理协议CardIOPaymentViewControllerDelegate
 4 //它将完成信用卡卡号识别的主要功能
 5 class ViewController: UIViewController, CardIOPaymentViewControllerDelegate {
 6     
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9         // Do any additional setup after loading the view, typically from a nib.
10         //当调用卡号识别的视图控制器时,因为需要加载各种资源,
11         //所以比较耗费时间,可能会出现卡顿现象。
12         //这里在调用前,进行一次预加载,以避免卡顿现象。
13         CardIOUtilities.preload()
14         
15         //创建一个按钮对象,当点击该按钮时,弹出卡号识别的视图控制器,
16         //在该视图控制器中,进行卡号识别的主要工作。
17         let button = UIButton(frame: CGRect(x: 40, y: 80, width: 240, height: 40))
18         //设置按钮标题文字
19         button.setTitle("Scan Card", for: .normal)
20         //设置按钮背景颜色
21         button.backgroundColor = UIColor.brown
22         //给按钮绑定点击事件
23         button.addTarget(self, action: #selector(ViewController.scanCard(_:)), for: UIControl.Event.touchUpInside)
24         
25         //将按钮添加到当前视图控制器的根视图
26         self.view.addSubview(button)
27     }
28     
29     //添加一个方法,用来响应按钮的点击事件
30     @objc func scanCard(_ sender: UIButton!)
31     {
32         //初始化卡号识别视图控制器
33         let cardIOVC = CardIOPaymentViewController(paymentDelegate: self)
34         //设置卡号识别视图控制器的展示样式
35         cardIOVC?.modalPresentationStyle = .formSheet
36         //以模态窗口的方式,显示卡号识别视图控制器
37         present(cardIOVC!, animated: true, completion: nil)
38     }
39     
40     //添加一个方法,用来响应用户取消识别的动作
41     func userDidCancel(_ paymentViewController: CardIOPaymentViewController!)
42     {
43         //在控制台打印输出相关的日志
44         print("user canceled")
45         //并隐藏卡号识别视图控制器
46         paymentViewController?.dismiss(animated: true, completion: nil)
47     }
48     
49     //添加另一个代理方法,用来响应用户点击完成按钮的事件
50     func userDidProvide(_ cardInfo: CardIOCreditCardInfo!, in paymentViewController: CardIOPaymentViewController!)
51     {
52         //创建一个字符串常量,用来存储识别到的信用卡的所有信息
53         if let info = cardInfo
54         {
55             let str = NSString(format: "Received card info.\n Number: %@\n expiry: %02lu/%lu\n cvv: %@.",
56              info.cardNumber, 
57              info.expiryMonth, 
58              info.expiryYear, 
59              info.cvv)
60 
61             //在控制台打印输出所有信息
62             print(str)
63         }
64         //同时隐藏卡号识别视图控制器
65         paymentViewController?.dismiss(animated: true, completion: nil)
66     }
67 }

然后点击【DemoApp/IPhone】模拟器名称,弹出模拟器列表,在弹出的模拟器列表中,选择真机选项,该项目需要在真机设备上进行测试。

转载于:https://www.cnblogs.com/strengthen/p/10053869.html

http://www.jmfq.cn/news/5103883.html

相关文章:

  • 百度一下做网站/公司网站免费自建
  • 网站开发合同技术目标/今天刚刚发生的重大新闻
  • 江苏屹峰建设网站/郑州seo关键词排名优化
  • 微信网站建设报价单/站长统计app下载免费
  • 济南网站建设公司电子商务网站/在线seo
  • 12306网站是阿里做的/排名优化怎么做
  • 贵阳网站设计阳光创信好吗/找培训机构的平台
  • 如何在大网站做外链/八百客crm系统登录入口
  • 查互做蛋白的网站/1688黄页大全进口
  • 同性性做视频网站/广州网站优化排名
  • 建设银行官方网站个人/公司的网站
  • 做一个推广网站多少钱/武汉网优化seo公司
  • 智慧团建登录入口官网电脑版/西安百度网站快速优化
  • 网站优化排名优化/网络营销推广活动
  • 360提交网站备案/什么平台引流最快
  • 百度的广告怎么免费发布/上海seo外包公司
  • 设计logo网站免/线下营销推广方式都有哪些
  • 全能网站建设/ip软件点击百度竞价推广
  • 政府网站字体/优化大师客服电话
  • 织梦下载网站模板/nba最新交易消息
  • 创网站需要什么/企业网站推广方案设计
  • 做网站需要服务器和什么软件/百度推广搜索排名
  • 怎样制作网站二维码/今日新闻国内大事件
  • 网站建设工资待遇/网上教育培训机构排名
  • 做视频的软件模板下载网站/seo搜索引擎优化步骤
  • 高价词网站源码/二级域名免费分发
  • 可以做puzzle的网站/网站seo招聘
  • 做电影种子下载网站违法吗/最新热搜榜
  • jsp做网站用到什么技术/兰州seo整站优化服务商
  • b2c平台是什么意思/苏州seo关键词优化推广