随机密码生成器Swift 3?

编程入门 行业动态 更新时间:2024-10-25 06:30:29
本文介绍了随机密码生成器Swift 3?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在为iOS构建一个随机密码生成器.其中,按钮会生成一个具有用户选择特征的随机密码(例如,用于打开或关闭大小写字母,字符和符号等的开关).

I'm building a random password generator for iOS. In it, a button generates a random password that has characteristics chosen by the user (e.g. switches to turn on or off lowercase and uppercase letters, characters and symbols, and so on).

UI看起来不错,其余代码运行顺利,但是我无法获得真正生成随机字母数字字符串的按钮.我有一个带有占位符文本(您的密码")的标签,当按下按钮时,该文本应更新为随机字符串,但出现编译器错误:未解析的标识符'length'的使用"

The UI looks great, the rest of the code is working smoothly, but I can't get my button to actually generate a random alphanumerical string. I have a label with some placeholder text ("Your Password") that should have its text updated to a random string when the button is pushed, but I am getting a compiler error: "unresolved use of identifier 'length'"

这是按钮的当前代码:

@IBAction func generatePassword(_ sender: UIButton) { let randomPasswordArray: NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" let len = UInt32(randomPasswordArray.length) var randomPassword = "" for _ in 0 ..< length { let rand = arc4random(len) var nextChar = randomPasswordArray.character(at: Int(rand)) randomPassword += NSString(characters: &nextChar, length: 1) as String } passwordLabel.text = "randomPassword" }

谢谢!

推荐答案

首先使用允许密码的字符创建一个数组

First create an array with your password allowed characters

let passwordCharacters = Array("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".characters)

然后选择密码长度

let len = 8

定义和空字符串密码

var password = ""

创建循环以粘贴您的随机字符

create a loop to gennerate your random characters

for _ in 0..<len { // generate a random index based on your array of characters count let rand = arc4random_uniform(UInt32(passwordCharacters.count)) // append the random character to your string password.append(passwordCharacters[Int(rand)]) } print(password) // "V3VPk5LE"

快捷键4

您还可以使用map代替标准循环:

You can also use map instead of a standard loop:

let pswdChars = Array("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890") let rndPswd = String((0..<len).map{ _ in pswdChars[Int(arc4random_uniform(UInt32(pswdChars.count)))]}) print(rndPswd) // "oLS1w3bK\n"

Swift 4.2

使用新集合的 randomElement()方法:

let len = 8 let pswdChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" let rndPswd = String((0..<len)pactMap{ _ in pswdChars.randomElement() }) print(rndPswd) // "3NRQHoiA\n"

更多推荐

随机密码生成器Swift 3?

本文发布于:2023-11-26 21:13:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635213.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:生成器   密码   Swift

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!