当前位置: 首页 > 编程日记 > 正文

自己写的程序密码功能 ------数字功能

自己写的程序密码功能  ------数字功能

class LockedViewController: UIViewController {

    

    var dataBase:FMDatabase?

    

    var i = 0

    

    var passwordStr : String?

    

    var tempStr : String = ""

    

    var numStr : String = ""  //初始输入密码

    

    var reNumStr : String = "" //再次输入密码

    

    var everyStr : String = "" //密码设置成功后,从数据库查询的密码放在这

    

    var titleLabel : UILabel!

    

    var pasLabel : UILabel!

    

    var baclBtn : UIButton! //返回上一页按钮

    

    var changeBtn : UIButton! //点击进入修改程序密码界面

    

    var global : Bool = Bool()

    

    var one : String = ""

    

    var two : String = ""

    

    override func viewDidLoad() {

        

        super.viewDidLoad()

        

        self.view.backgroundColor = UIColor.whiteColor()

        

        

        

        creatConfig()

        // Do any additional setup after loading the view.

    }

    

    override func viewWillAppear(animated: Bool) {

        super.viewWillAppear(animated)

        self.title = "程序密码"

        

    }

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    func creatConfig() {

        

        titleLabel = creatLabel(CGRectMake(20, 70, SCREEN_WIDTH-40, 20), text: "请输入密码", textColor: UIColor.blackColor(), textFont: 15, textAlignment: NSTextAlignment.Center)

        

        pasLabel = creatLabel(CGRectMake(20, 100, SCREEN_WIDTH-40, 20), text: "_ _ _ _ _ _", textColor: UIColor.blackColor(), textFont: 15, textAlignment: NSTextAlignment.Center)

       // baclBtn = creatBtn(CGRectMake(10, SCREEN_HEIGHT - 80, 60, 30), text: "返回", textColorNor: UIColor.blackColor(), textColorHig: UIColor.blackColor(), textFont: 15, imageNor: "", imageHig: "", btnTag: 101, target: "Back")

        changeBtn = creatBtn(CGRectMake(SCREEN_WIDTH - 120, SCREEN_HEIGHT - 80, 100, 30), text: "修改密码", textColorNor: UIColor.blackColor(), textColorHig: UIColor.blackColor(), textFont: 15, imageNor: "", imageHig: "", btnTag: 102, target: "Change:")

        

        let radius : CGFloat = 75

        let x = SCREEN_WIDTH

        let hei : CGFloat = 80

        let kx = (x-radius*3)/4

        creatBtn(CGRectMake(kx, 150, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-1", imageHig: "", btnTag: 1+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*2+radius, 150, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-2", imageHig: "", btnTag: 2+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*3+radius*2, 150, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-3", imageHig: "", btnTag: 3+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx, 150+hei, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-4", imageHig: "", btnTag: 4+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*2+radius, 150+hei, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-5", imageHig: "", btnTag: 5+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*3+radius*2, 150+hei, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-6", imageHig: "", btnTag: 6+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx, 150+hei*2, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-7", imageHig: "", btnTag: 7+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*2+radius, 150+hei*2, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-8", imageHig: "", btnTag: 8+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*3+radius*2, 150+hei*2, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-9", imageHig: "", btnTag: 9+1234, target: Selector("clickBtnToTurn:"))

        creatBtn(CGRectMake(kx*2+radius, 150+hei*3, radius, radius), text: "", textColorNor: UIColor.clearColor(), textColorHig: UIColor.clearColor(), textFont: 15, imageNor: "数字-0", imageHig: "", btnTag: 0+1234, target: Selector("clickBtnToTurn:"))

      //  creatBtn(CGRectMake(kx*3+radius*2, 150+hei*3, radius, radius), text: "", textColorNor: UIColor.whiteColor(), textColorHig: UIColor.blackColor(), textFont: 15, imageNor: "删除", imageHig: "", btnTag: 0+1235, target: "delegateBtn:")

        

    }

    

    func clickBtnToTurn(sender:UIButton) {

        if i != 3 {

            

            let zero : String = "0"

            

            var one : String  = "1"

            

            var two : String  = "2"

            

            let three : String = "3"

            

            let four : String = "4"

            

            let five : String = "5"

            

            let six : String = "6"

            

            let seven : String = "7"

            

            let eight : String = "8"

            

            let nine : String = "9"

            

            switch sender.tag-1234 {

                

            case 0:

                

                tempStr = tempStr + zero

                

                print("tempStr :\(tempStr)")

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + zero

                    

                }else{

                    

                    reNumStr = reNumStr + zero

                    

                }

                

            case 1:

                tempStr = tempStr + one

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + one

                    

                }else{

                    

                    reNumStr = reNumStr + one

                    

                }

            case 2:

                tempStr = tempStr + two

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + two

                    

                }else{

                    

                    reNumStr = reNumStr + two

                    

                }

            case 3:

                

                tempStr = tempStr + three

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + three

                    

                }else{

                    

                    reNumStr = reNumStr + three

                    

                }

            case 4:

                tempStr = tempStr + four

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + four

                    

                }else{

                    

                    reNumStr = reNumStr + four

                    

                }

            case 5:

                tempStr = tempStr + five

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + five

                    

                }else{

                    

                    reNumStr = reNumStr + five

                    

                }

            case 6:

                tempStr = tempStr + six

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + six

                    

                }else{

                    

                    reNumStr = reNumStr + six

                    

                }

            case 7:

                tempStr = tempStr + seven

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + seven

                    

                }else{

                    

                    reNumStr = reNumStr + seven

                    

                }

            case 8:

                tempStr = tempStr + eight

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + eight

                    

                }else{

                    

                    reNumStr = reNumStr + eight

                    

                }

            case 9:

                tempStr = tempStr + nine

                

                if (tempStr as NSString).length <= 6 {

                    

                    numStr = numStr + nine

                    

                }else{

                    

                    reNumStr = reNumStr + nine

                    

                }

                

            default:

                break

            }

            

            //查询数据

            let arr : Array<PasswordReco> = PasswordManager.shareInstance().selectDriveRecos()

            

            for element : PasswordReco in arr {

                

                everyStr = element.passwordStr

                

                

                print("element.passwordStr:\(element.passwordStr)")

                

            }

            

            print("first:\(everyStr)")

            if everyStr == "" {

                if (tempStr as NSString).length <= 6 {

                    if (numStr as NSString).length == 0 {

                        pasLabel.text = "_ _ _ _ _ _"

                    }else if (numStr as NSString).length == 1 {

                        pasLabel.text = "* _ _ _ _ _"

                    }else if (numStr as NSString).length == 2 {

                        pasLabel.text = "* * _ _ _ _"

                    }else if (numStr as NSString).length == 3 {

                        pasLabel.text = "* * * _ _ _"

                    }else if (numStr as NSString).length == 4 {

                        pasLabel.text = "* * * * _ _"

                    }else if (numStr as NSString).length == 5 {

                        pasLabel.text = "* * * * * _"

                    }else if (numStr as NSString).length == 6 {

                        pasLabel.text = "* * * * * *"

                    }

                }

                if (numStr as NSString).length == 6 {

                    if (reNumStr as NSString).length == 0 {

                        

                        titleLabel.text = "请再次输入密码"

                        pasLabel.text = "_ _ _ _ _ _"

                    }else if (reNumStr as NSString).length == 1 {

                        pasLabel.text = "* _ _ _ _ _"

                    }else if (reNumStr as NSString).length == 2 {

                        pasLabel.text = "* * _ _ _ _"

                    }else if (reNumStr as NSString).length == 3 {

                        pasLabel.text = "* * * _ _ _"

                    }else if (reNumStr as NSString).length == 4 {

                        pasLabel.text = "* * * * _ _"

                    }else if (reNumStr as NSString).length == 5 {

                        pasLabel.text = "* * * * * _"

                    }else if (reNumStr as NSString).length == 6 {

                        pasLabel.text = "* * * * * *"

                    }

                }

                if (tempStr as NSString).length == 12 {

                    if numStr == reNumStr {

                        

                        global = true

                        

                        one = "1"

                        

                        two = "3"

                        

                        PasswordManager.shareInstance().addDriveReco(PasswordReco(passwordStr: "\(reNumStr)",first: one,second: two))

                        

                        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userGesturePasswordEnabled")

                        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "PWDEnabled")

                        NSUserDefaults.standardUserDefaults().synchronize()

                        NSHelper.showAlertTitle("程序密码设置成功,请返回主程序", forView: self.view)

                        //跳转下一界面

                    }else {

                        titleLabel.text = "两次密码输入不一致,请重新输入"

                        pasLabel.text = "_ _ _ _ _ _"

                        numStr = ""

                        reNumStr = ""

                        tempStr = ""

                        NSHelper.showAlertTitle("两次密码输入不一致,请重新输入", forView: self.view)

                        tempStr = ""

                    }

                }

            }

            else  {

                if everyStr != numStr {

                    if (numStr as NSString).length == 0{

                        pasLabel.text = "_ _ _ _ _ _"

                    }else if (numStr as NSString).length == 1 {

                        pasLabel.text = "* _ _ _ _ _"

                    }else if (numStr as NSString).length == 2 {

                        pasLabel.text = "* * _ _ _ _"

                    }else if (numStr as NSString).length == 3 {

                        pasLabel.text = "* * * _ _ _"

                    }else if (numStr as NSString).length == 4 {

                        pasLabel.text = "* * * * _ _"

                    }else if (numStr as NSString).length == 5 {

                        pasLabel.text = "* * * * * _"

                    }else if (numStr as NSString).length == 6 {

                        

                        numStr = ""

                        reNumStr = ""

                        tempStr = ""

                        titleLabel.text = "请再次输入密码"

                        pasLabel.text = "_ _ _ _ _ _"

                        i = i + 1

                        if i == 2 {

                            NSHelper.showAlertTitle("您还有1次密码输入机会", forView: self.view)

                        }else if i == 3 {

                            NSHelper.showAlertTitle("您没有机会输入密码,请尝试修改密码", forView: self.view)

                        }

                        

                    }

                    

                }else {

                    pasLabel.text = "_ _ _ _ _ _"

                    numStr = ""

                    reNumStr = ""

                    tempStr = ""

                    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userGesturePasswordEnabled")

                    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "PWDEnabled")

//                    self.dismissViewControllerAnimated(true, completion: nil)

                    navigationController?.popViewControllerAnimated(true)

                }

            }

        }else {

             NSHelper.showAlertTitle("您没有机会输入密码,请尝试修改密码", forView: self.view)

        }

        

    }

    

    func Change(sener : UIButton) {

        

        print("修改密码页面")

        

        navigationController?.pushViewController(ChangeVC(), animated: true)

        

    }

    

    //MARK:---------------------控件

    func creatLabel(frame:CGRect,text:String,textColor:UIColor,textFont:CGFloat,textAlignment:NSTextAlignment) -> UILabel {

        let label = UILabel.init(frame: frame)

        label.text = text

        label.textColor = textColor

        label.font = UIFont.systemFontOfSize(textFont)

        label.textAlignment = textAlignment

        self.view.addSubview(label)

        return label

    }

    

    func creatBtn(frame:CGRect,text:String,textColorNor:UIColor,textColorHig:UIColor,textFont:CGFloat,imageNor:String,imageHig:String,btnTag:Int,target:Selector) -> UIButton {

        

        let btn = UIButton.init(frame: frame)

        btn.setTitle(text, forState: .Normal)

        btn.setTitleColor(textColorNor, forState: .Normal)

        btn.setTitleColor(textColorHig, forState: .Selected)

        btn.setTitleColor(textColorHig, forState: .Highlighted)

        btn.setImage(UIImage.init(named: imageNor), forState: .Normal)

        btn.setImage(UIImage.init(named: imageHig), forState: .Highlighted)

        btn.setImage(UIImage.init(named: imageHig), forState: .Selected)

        btn.tag = btnTag

        btn.addTarget(self, action: target, forControlEvents: .TouchUpInside)

        

        view.addSubview(btn)

        return btn

    }

    

}



相关文章:

程序员的自我修养--链接、装载与库笔记:Windows PE/COFF

1. Windows的二进制文件格式PE/COFF 在32位Windows平台下&#xff0c;微软引入了一种叫PE(Portable Executable)的可执行格式。作为Win32平台的标准可执行文件格式&#xff0c;PE有着跟ELF一样良好的平台扩展性和灵活性。PE文件格式事实上与ELF同根同源&#xff0c;它们都是由…

神州数码与神州控股、神州信息共同主办首届技术年会,透露出什么信号?

11 月 8 日&#xff0c;神州控股、神州数码集团、神州信息共同主办“数字中国 2019 技术年会”&#xff0c;聚焦云计算、大数据、人工智能、区块链、5G 等前沿技术创新与应用实践&#xff0c;众多领域的技术专家展开了深度交流&#xff0c;共同探讨数字时代的技术创新与协同发展…

osi七层协议和tcp/ip四层协议

&#xff08;大部分内容为转载&#xff09;OSI&#xff08;Open System Interconnection&#xff09;是一个开放性的通行系统互连参考模型&#xff0c;他是一个定义的非常好的协议规范&#xff0c;共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在…

Swift中页面跳转与传值:

1.简单方式 首先&#xff0c;Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法&#xff0c;我这里选择使用storyboard的界面跳转方法。 1、通过在storyboard中拉button控件建立segue跳转。 2、通过presentViewController方法进行界面跳转。 这里需要注意presentV…

知乎热议!学完Python之后,我的编程能力竟然退化了!

在知乎上有一个特别火的问题&#xff1a;如何学Python&#xff1f;你会看到很多高赞回答是&#xff1a;我一天就学完了。在大家群嘲的背后&#xff0c;我们来分析一下&#xff0c;为什么在已经学过的人眼里&#xff0c;Python这么容易学&#xff0c;甚至简单到被某些人鄙视呢&a…

libjpeg-turbo介绍及测试代码

很多年之前在https://blog.csdn.net/fengbingchun/article/details/10171583 中简单介绍过libjpeg-turbo的安装&#xff0c;因为libjpeg-turbo一直在维护更新&#xff0c;较之前有了些变化&#xff0c;这里再次整理下&#xff0c;并增加更多的测试代码。 libjpeg-turbo的主页为…

高级特性-多线程,GUI

2019独角兽企业重金招聘Python工程师标准>>> 创建线程两种方式第一种&#xff0c;导入improt thread 模块&#xff0c;thread.start_new_thread(功能函数名称&#xff0c;(参数1&#xff0c;参数2...)) 后面参数为功能函数的参数第二个方式类似于java&#xff0c;导…

Hulu视频如何提升推荐多样性?

作者 | 余沾 整理 | 深度传送门&#xff08;ID: deep_deliver&#xff09;导读&#xff1a;本文主要介绍Hulu在NIPS 2018上发表的《Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity》中&#xff0c;提出的DPP算法解决视频推荐…

UITextField长度限制的写法

1.遵循代理 UITextFieldDelegate 2.点击响应方法 userNameText.addTarget(self, action: "tappedOne:", forControlEvents: UIControlEvents.EditingChanged) 3.方法的实现 func tappedOne(textField: UITextField) { textField.text textField.text?.uppercaseS…

通过Python在Windows或Linux上快速搭建HTTP服务器

在Windows 7/10或Ubuntu上可以通过python2.x或python3.x来快速搭建一个简单的HTTP服务器。 如果python为2.x&#xff0c;则可执行&#xff1a;$ python -m SimpleHTTPServer 或 $ python2 -m SimpleHTTPServer 如果python为3.x&#xff0c;则可执行&#xff1a;$ python -m h…

NAND FLASH

NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1&#xff0e; 概述 MT29F2G08使用一个高度复用的8-bit总线&#xff08;I/O[7:0]&#xff09;来数据传输、地址、指令。5个命令脚&#xff08;CLE、ALE、CE#、WE#&#xff09;实现NAND命令总线接口规程。3个…

swift 中跳转web view的两种方法

首先 遵循代理 引入头文件 #import <WebKit/WebKit.h> 第一种情况 直接跳转 了解不含特殊字符的 import UIKit class NewsViewController: UIViewController,WKNavigationDelegate,UIScrollViewDelegate { var webView : WKWebView WKWebView() override func viewW…

YAML开源库yaml-cpp简介及使用

关于YAML的介绍可以参考&#xff1a;https://blog.csdn.net/fengbingchun/article/details/88090609 yaml-cpp是用c实现的用来解析和生成yaml文件的&#xff0c;源码地址在https://github.com/jbeder/yaml-cpp &#xff0c;这里使用的是最新发布的稳定版0.6.2. 解析和产生yam…

数据安全引担忧?get它,让你吃一颗“定心丸”

网络购物、在线外卖、远程教育、共享单车……如今&#xff0c;这些数字化的消费场景在个人生活中早已司空见惯。同时&#xff0c;在数字化浪潮下&#xff0c;越来越多的企业意识到大数据资产的价值&#xff0c;并试图推动其数字化转型。数据经济飞速发展&#xff0c;带来便捷和…

ETL数据抽取策略

ETL的抽取策略本文所提到的数据加载策略为OLTP系统作为源系统&#xff0c;并进行ETL数据加载到OLAP系统中所采用的一般数据加载策略。依循数据仓库的工作方式&#xff0c;原始资料由源数据库被抽取出来后&#xff0c;将在中间过程被写入到”Operational Data Store”(ODS)&…

iOS下拉tableView实现上面的图片放大效果

#import "ViewController.h" #define kScreenbounds [UIScreen mainScreen].bounds #define kScreenWidth [UIScreen mainScreen].bounds.size.width #define kScreenHeight [UIScreen mainScreen].bounds.size.height // 宏定义一个高度 #define pictureHeight 200…

在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤

多年前在https://blog.csdn.net/fengbingchun/article/details/40951403 中对FFmpeg在windows下的编译过程做过说明&#xff0c;那时FFmpeg版本用的2.4.3, VS是2010&#xff0c;现在FFmpeg最新稳定版为4.1.3&#xff0c;通过VS2013进行编译&#xff0c;较之前有了些不同&#x…

GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音

作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;本文中&#xff0c;Google 团队提出了一种文本语音合成&#xff08;text to speech&#xff09;神经系统&#xff0c;能通过少量样本学习到多个不同说话者&…

entity framework 使用Mysql配置文件

2019独角兽企业重金招聘Python工程师标准>>> <?xml version"1.0" encoding"utf-8"?> <configuration><configSections><section name"entityFramework" type"System.Data.Entity.Internal.ConfigFile.En…

UIWebView、WKWebView使用详解及性能分析

一、整体介绍 UIWebView自iOS2就有&#xff0c;WKWebView从iOS8才有&#xff0c;毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存&#xff0c;且内存峰值更是夸张。WKWebView网页加载速度也有提升&#xff0c;但是并不像内存那样提…

FFmpeg中libavutil库简介及测试代码

libavutil是一个实用库&#xff0c;用于辅助多媒体编程。此库包含安全的可移植字符串函数、随机数生成器、数据结构、附加数学函数、加密和多媒体相关功能(如像素和样本格式的枚举)。libavcodec和libavformat并不依赖此库。 以下是测试代码&#xff0c;包括base64, aes, des, …

区块链人才月均薪酬1.6万元?

在上周&#xff0c;我国宣布将重点推动区块链技术的发展&#xff0c;这个消息无疑是为区块链开发者们打了一直强心剂&#xff0c;简直是喜大普奔啊 &#xff01; 因为之前区块链这个技术虽然一直在圈内很火&#xff0c;但是却没有得到国家的全面认可和推广&#xff0c;所以很多…

用最少的时间学最多的数据挖掘知识(附教程数据源)| CSDN博文精选

作者 | 宋莹来源 | 数据派THU&#xff08;ID:DatapiTHU&#xff09;本文为你介绍数据挖掘的知识及应用。引言最近笔者学到了一个新词&#xff0c;叫做“认知折叠”。就是将复杂的事物包装成最简单的样子&#xff0c;让大家不用关心里面的细节就能方便使用。作为数据科学领域从业…

WKWebView 的使用简介

1. navigationDelegate [objc] view plaincopy print?- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation { // 类似UIWebView的 -webViewDidStartLoad: NSLog("didStartProvisionalNavigation"); [UIAppli…

FFmpeg中libswscale库简介及测试代码

libswscale库功能主要包括高度优化的图像缩放、颜色空间和像素格式转换操作。 以下是测试代码(test_ffmpeg_libswscale.cpp)&#xff1a; #include "funset.hpp" #include <string.h> #include <iostream> #include <string> #include <memor…

FFmpeg中libswresample库简介及测试代码

libswresample库功能主要包括高度优化的音频重采样、rematrixing和样本格式转换操作。 以下是测试代码(test_ffmpeg_libswresample.cpp)&#xff0c;对音频了解较少&#xff0c;测试代码是参考examples中的&#xff1a; #include "funset.hpp" #include <iostre…

高德地图POI搜索,附近地图搜索,类似附近的人搜索

效果图&#xff1a; 首先导入道德地图的SDK&#xff0c;导入步骤不在这里介绍 2&#xff1a;包含头文件&#xff1a; [objc] view plaincopy #import <AMapSearchKit/AMapSearchAPI.h> 3&#xff1a;代码 [javascript] view plaincopy property(nonatomic,strong)AMap…

手把手教你实现PySpark机器学习项目——回归算法

作者 | hecongqing 来源 | AI算法之心&#xff08;ID:AIHeartForYou&#xff09;【导读】PySpark作为工业界常用于处理大数据以及分布式计算的工具&#xff0c;特别是在算法建模时起到了非常大的作用。PySpark如何建模呢&#xff1f;这篇文章手把手带你入门PySpark&#xff0c;…

mcDropdown使用方法

最近使用了mcDropdown插件&#xff0c;百度一查&#xff0c;资料较少&#xff0c;只看到了mcDropdown官网的英文说明文档&#xff0c;所以今天就写点&#xff0c;以便以后使用。 第一步&#xff1a;引用jquery库和css jQuery v1.2.6 (or higher)*jquery.mcdropdown.js Plug-inj…

Windows上通过VLC播放器搭建rtsp流媒体测试地址操作步骤

1. 从https://www.videolan.org/index.zh.html 下载最新的windows 64bit 3.0.6版本并安装&#xff1b; 2. 打开VLC media player&#xff0c;依次点击按钮&#xff1a;”媒体” --> “流”&#xff0c;如下图所示&#xff1a; 3. 点击”添加”按钮&#xff0c;选择一个视频…