草庐IT

function-literal

全部标签

swift 3 : Programmatically functioning scope bar

我已经以编程方式为我的TableView设置了一个搜索栏,并向搜索栏添加了一个范围栏。我试图弄清楚当用户点击范围按钮之一时如何显示正确的信息。例如,如果他们点击“甜食”范围按钮,它只会显示数据模型中与甜食相关的所有水果。到目前为止,这是我的代码:classViewController:UIViewController,UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate,UISearchResultsUpdating{@IBOutletweakvarmyTable:UITableView!varfruits=[Fru

arrays - 为什么我不能调用 reduce(into :) on an array literal in Xcode 9. 2?

我正在寻找一种将数组映射到字典的方法并找到了这个post.这很有帮助。我将该帖子中的代码复制到playground中并且可以正常工作。然后我决定更多地使用它:[1,2,3].reduce(into:[Int:String](),{$0[$1]=$1.description})我希望它返回[1:"1",2:"2",3:"3"]但出现编译错误:Cannotsubscriptavalueofincorrectorambiguoustype我试图减少到一个数组:[1,2,3].reduce(into:[Int](),{$0.append($1)})//Iamawarethatthisispoi

ios - 为什么在命名 Swift 枚举大小写时出现 'is not a valid digit in integer literal' 错误?

我正在尝试创建一个带有运行距离的枚举,但是Swift不允许我以这种格式命名enum案例5K。我收到一条错误消息,提示'K'不是整数文字中的有效数字。这是我的代码: 最佳答案 标识符和类型属性/枚举案例不能以数字开头。您需要更改枚举的命名约定。enumRaceType:String{casefiveK="5K"casetenK="10K"casemarathon} 关于ios-为什么在命名Swift枚举大小写时出现'isnotavaliddigitinintegerliteral'错误?,

swift - 我如何在 `#function` 函数中使用 `inline` 符号?

我想用函数的名字来解决一些问题,但是#function似乎不能很好地与@inline(__always)一起工作,这是我的代码:@inline(__always)funclog(){print(#function)}funca(){log()}//want'a()',butgot'log()'funcb(){log()}funcc(){log()}//...谁能解释一下?或者这只是一个愚蠢的想法。 最佳答案 如果你的意图是打印调用函数的名称log(),那么你应该将它作为默认参数传递(它被评估在调用者的上下文中),如图所示在Build

Swift 类型(:) function signature

我正在尝试实现返回值类型的简单名称的函数:functypeName(ofvalue:Any)->String{returnString(describing:type(of:value))}但是当我尝试在super.init调用之前调用它时:classSuperTest{init(name:String){print(name)}}classTest:SuperTest{init(){//super.init(name:String(describing:type(of:self)))super.init(name:typeName(of:self))}}Test()它失败了:'sel

ios - swift 4 : Unrecognized selector sent to instance when calling a function inside another class

对于我的应用程序,我在没有Storyboard的情况下工作。出于这个原因,我试图通过将更大的函数存储在另一个类中并在需要时调用它们来使我的ViewController保持整洁。出于某种原因,当我使用#Selector调用我的函数时,出现崩溃,提示“无法识别的选择器已发送至实例”。当我将我的函数存储在与#Selector相同的ViewController中时,它工作得很好。以下代码有效ViewControllerclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()view.ad

ios - Swift 4.1 ABI 向前兼容性 : implement function that Apple will implement in the future

我不在乎明年是否必须重新编译我的应用程序,因为Apple再次更改了Swift语言。然而,我真正关心的是,如果我的应用程序已经在应用程序商店中,在加载期间停止工作并在应用程序启动时崩溃,因为用户更新到下一个iOS版本。我来自ObjectiveC背景,但我不了解二进制级别的Swift应用程序中发生了什么。在我正在编写的一个应用程序中,我添加了一个允许我添加两个CGPoint值的函数。这样做是有道理的,例如当你使用pangesturerecognizers时.代码是:func+(_a:CGPoint,_b:CGPoint)->CGPoint{returnCGPoint(x:a.x+b.x,y

iOS/swift : in which function between viewDidLoad and viewWillAppear am I supposed to query a database?

在我的应用程序中,由Swift和XCode6开发,我必须查询一个数据库,然后根据该答案修改并显示一些UI小部件,在我的例子中,它们是三个彩色按钮,我必须更改由数字组成的文本。这些按钮指示分配给用户的任务数量,并且根据任务的优先级它们具有不同的颜色。那么,我是否应该在viewDidLoad()函数中查询数据库,然后根据答案更改viewWillAppear中的按钮文本?是吗? 最佳答案 是的,你可以在viewDidLoad中查询它,但如果你在viewWillAppear中查询它会更好,因为viewDidLoad在View第一次加载时调用

swift 3 : How to catch error if NSCoder decodeX function decodes wrong value type?

Swift3改变了NSCoder的工作方式。正如其他SO问题所提到的,要解码Int或Bool等值类型,您必须使用特定函数。例如,decodeInteger用于解码Int值,如下所示:letvalue=decodeInteger(forKeykey:TestKey)但是,如果decodeInteger返回的值是String或Bool或Int以外的值怎么办?或者如果TestKey实际上映射为空,因为它包含错误的key数据怎么办?如何优雅地捕获这些错误? 最佳答案 在非整数键上使用decodeInteger会引发异常。遗憾的是,这是一个S

ios - swift 2.0 : `print` function generates "Argument passed to call that takes no arguments" error

类中的print函数神秘地生成以下错误:Argumentpassedtocallthattakesnoarguments。但是,如果我们使用Swift.print而不是仅仅使用print来调用函数,错误就会消失。我们使用的是Swift2和Xcode7。为什么会这样?在生成错误的地方测试下面的函数:functest(){print("whydoesthisfail")} 最佳答案 However,theerrorgoesawayifweuseSwift.printinsteadofjustprinttoinvokethefunctio