我正在尝试将函数传递给另一个函数,然后执行传递的函数传递给它一个变量.
这是我的代码:
func showStandardPrompt(prompt:String,view: UIViewController,numberInput: Bool, callback: (()->(String))?) {
let alert = UIAlertController(title: "Input Data", message: prompt, preferredStyle: .Alert)
alert.addTextFieldWithConfigurationHandler { (textField) in
if numberInput {
textField.keyboardType = .NumberPad
}
}
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
let field = alert.textFields![0] as UITextField
callback?(field.text!)
}
alert.addAction(OKAction)
let CancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)
alert.addAction(CancelAction)
view.presentViewController(alert,animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
callback?(field.text!)
Run Code Online (Sandbox Code Playgroud)
错误是"无法将'String'的值类型转换为期望的参数类型'()'.我知道这是语法问题 - 只是不知道应该是什么.
当用户点击它时,我需要突出显示不规则的形状.我对如何做的想法是绘制一个与形状匹配的多边形,用颜色填充它并改变不透明度使其半透明.不幸的是我找不到任何关于如何做到这一点.基本上,我想绘制填充多边形,将其叠加到我的地图上,然后能够解散(或隐藏)它.我怎么能做到这一点?
我的条形码扫描工作在我的应用程序中.检测到条形码后,我停止捕获会话以允许处理条形码.但是,在处理完条码后,我希望扫描控制器保持原状并扫描下一个条形码.我曾假设开始捕获会话(startRunning())会这样做,但图像保持冻结状态.如何再次启动捕获会话?
如何检测蓝牙键盘是否已连接到iPad?它实际上是条形码扫描仪,但充当键盘。如果扫描仪未连接,我想提醒用户。
我想从plist文件中读取整数值.我有以下代码:
let path = NSBundle.mainBundle().pathForResource("savedState", ofType: "plist")
let dict = NSDictionary(contentsOfFile: path!)
let players: AnyObject = String(dict.valueForKey("players") as NSString)
let level: AnyObject = String(dict.valueForKey("level") as NSString)
let numPlayers = Int(players as NSNumber)
let playLevel = Int(level as NSNumber)
Run Code Online (Sandbox Code Playgroud)
让玩家:让级别:崩溃我的应用程序.我知道这应该很简单 - 我只是想不出怎么做.
我刚刚转换为Swift 4并且现在出现以下错误:无法使用类型为"CountableRange"(又名为"CountableRange")的索引下标"String.UnicodeScalarView"类型的值
代码行是:
extension AppInvite.PromoCode {
fileprivate static func truncate(string: String) -> String {
let validCharacters = CharacterSet.alphanumerics
let cleaned = string.unicodeScalars.filter {
validCharacters.contains(UnicodeScalar(UInt16($0.value))!)
}
let range = 0 ..< min(10, cleaned.count)
let characters = cleaned[range].map(Character.init)
return String(characters)
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何纠正?
我有一个UILabel,它将包含各种长度的文本。我需要在文字的左上角放置一个图片,然后将文字换行。我怎样才能做到这一点?我只能找到使用的UITextView,因为它是静态文本,所以我不想使用它。